Bonjour,
C'est après plusieurs essais totalement infructueux que je me résolue à demander votre aide.
Je souhaite programmer des évènements commun à toutes les checkbox présentes sur une feuille Excel et auparavant créées automatiquement.
Voici le code de création de la checkbox :
A noter que j'ai choisi un Contrôle ActiveX plutôt qu'un Contrôle de formulaire parce que ca me permettait par la suite de redimensionner les lignes, tout en gardant le contrôle sur la même ligne (impossible avec un contrôle de formulaire, qui "flotte" sur la feuille).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Private Sub btnAddNewTask_Click() Dim CheckBoxLeft As Single Dim CheckBoxTop As Single Dim RowNumber As Single CheckBoxLeft = Range("A2").End(xlDown).Offset(0, 9).Left + 30 CheckBoxTop = Range("A2").End(xlDown).Offset(0, 9).Top - 3 RowNumber = Range("a2").End(xlDown).Row Dim SelectBox As OLEObjects ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _ DisplayAsIcon:=False, Left:=CheckBoxLeft, Top:=CheckBoxTop, Width:=108, Height:= _ 21).Select With Selection .Object.Caption = "" .LinkedCell = "J" & NbOfRows .Object.Value = False End With End Sub
Je souhaite créer un évènement qui changerait la couleur de la ligne quand on clique sur le checkbox, c'est à dire quand celui-ci devient TRUE, et qui revient à sa couleur normale quand on reclique dessus, c'est à dire quand celui-ci devient FALSE.
J'ai essayé de créer une classe et d'utiliser WithEvent, en m'inspirant des articles de Pierre Fauconnieret SilkyRoad, mais sans succès.
Si vous pouviez m'aider la dessus je vous en serais très reconnaissant.
Merci à vous tous,
R.
Partager