Bonjour,
J'ai remarqué que ton code commence à la ligne 35 .Range("A35:A" & Dlig).ClearContents
de le feuille pour effacer la zone.
Ce qui me laisse croire que tu utilises ton fichier d'origine.
Est-ce que la propriété Name
des Checkbox est bien CheckBox1
, 2, 3, etc. comme dans le fichier exemple que tu as soumis ?
Sinon, il faut adapter ... soient les Name des Checkbox ... soit le mot Checkbox dans la ligne
If Controls("CheckBox" & x).Value = False Then
.
Il faut faire la différence entre la propriété Name
et la propriété Caption
.
Aussi, j'ai oublié de déclarer la variable X au début du code ...
Option Explicit
Private Sub CommandButton1_Click()
Dim Dlig As Integer, Dlig2 As Integer, X As Byte
Dim C As MSForms.Control
Dim NC As Integer
For Each C In Me.Controls ' compte le nombre de checkbox
If TypeOf C Is MSForms.CheckBox Then NC = NC + 1
Next C
With Worksheets("Feuil1")
Dlig = .Cells(Rows.Count, "A").End(xlUp).Row 'dernière ligne
If Dlig = 1 Then Dlig = 2 'si dernière ligne est 1, mettre à 2
.Range("A2:A" & Dlig).ClearContents 'vider les anciennes données
For X = 1 To NC ' boucler sur le checkbox
If Controls("CheckBox" & X).Value = False Then
Dlig2 = .Cells(Rows.Count, "A").End(xlUp).Row + 1 ' trouve à nouveau la dernière ligne
.Cells(Dlig2, "A").Value = "Document " & X ' si checkbox n'est pas coché, écrire le nom dans la feuille
End If
Next X
End With
End Sub
ric