j'ai un fichier en pièce jointe où je souhaite pour une liste de personne insérer une notion de "RTT" pour tout le monde, pour un jour donné, en cliquant sur une checkbox.
Ma question est de savoir comment créer une checkbox sachant que je ne dois pas mettre le motif RTT lorsque sur la ligne il n'y a pas de salarié.
... difficile d'être clair, le mieux est de voir le fichier joint.
Private Sub CheckBox1_Click()
Dim i As Long
If CheckBox1.Value Then
For i = 7 To Range("C65536").End(xlUp).Row Step 2
If Cells(i, 2).Value <> "" Then
Cells(i, 4).Value = "RTT"
End If
Next i
Else
Range("D7:D" & Range("C65536").End(xlUp).Row + 1).ClearContents
End If
End Sub
Mais il serait sans doute mieux d'éviter de fusionner les lignes 2 à 2 si c'est possible
Bonjour Tony44, Bonjour pierrejean , Bonjour Tototiti ,
Comme je me suis lancé dans le module de classe, je post le résultat.
Par contre les cellules fusionnées... Grrrrr , m'ont obligé à utiliser un select.... Grrrrr
Cordialement
EDIT
Une version révisée (4), sans select. (Merci Tototiti de ton code, le secret résidait dans le +1 )
merci pierrejean d’être encore venu a mon secours. par contre je ne comprend pas vraiment comment le code fonctionne. pourrais-tu me l'expliquer si tu as un moment.
merci aussi à tototiti2008 et Efgé, vos solutions fonctionnent bien. je vais pouvoir aussi m'en servir d'en d'autres fichiers.
merci a vous tous.
Private Sub CheckBox1_Click()
'de la ligne 7 a la derniere ligne de lac olonne B
For n = 7 To Range("B65536").End(xlUp).Row Step 2
'la checkox est cochée
If CheckBox1 Then
'si la ligne n de la colonne B n'est pas vide alors ecrire en colonne D : RTT
If Range("B" & n) <> "" Then Range("D" & n) = "RTT"
' sinon ecrire ""
Else
If Range("B" & n) <> "" Then Range("D" & n) = ""
End If
Next
End Sub