Option Explicit
Dim X As Integer
Private Sub CommandButton2_Click()
Dim Obj As OLEObject
For Each Obj In Worksheets("Choix du métier").OLEObjects 'NOM_FEUILLE à remplacer par le bon nom
If TypeOf Obj.Object Is MSForms.CheckBox Then
Select Case Obj.Name
Case "CheckBox1"
If Obj.Object.Value = True Then X = 6: Call copier_coller
Case "Checkbox2"
If Obj.Object.Value = True Then X = 7: Call copier_coller
Case "Checkbox3"
If Obj.Object.Value = True Then X = 8: Call copier_coller
End Select
End If
Next Obj
Call doublons
End Sub
Private Sub copier_coller()
Dim j, Numeroligne As Integer
For j = 4 To 62
With Sheets("SF SI")
If IsEmpty(.Cells(j, X).Value) = False Then
Application.ScreenUpdating = False
Numeroligne = Sheets("Vos Compétences SF SI").Range("A62").End(xlUp).Row + 1
.Range("A" & j & ":E" & j).Copy Sheets("Vos Compétences SF SI").Range("A" & Numeroligne)
End If
End With
Next j
End Sub
Private Sub doublons()
Dim k, boucleur As Integer
With Sheets("Vos compétences SF SI")
For k = .Range("A62").End(xlUp).Row To 4 Step -1
For boucleur = k - 1 To 4 Step -1
If .Cells(boucleur, 4).Value = .Cells(k, 4).Value Then .Rows(boucleur).Delete: k = k - 1
Next boucleur
Next k
.Range("A4:E" & .Range("A62").End(xlUp).Row).Sort Key1:=.Range("A4"), Order1:=xlAscending
End With
End Sub