Comment faire un module de classe avec fonction "unclick"
Bonjour le forum !
J'ai un petit souci sur une macro que j'ai créée : en fonction du nombre de cellules trouvées à partir d'une recherche, un certain nombre de CheckBox sont créées par la macro.
Ces CheckBox créées, je dois les cocher toutes en cochant une autre CheckBox créée elle-même par la macro.
Étant donné que je créé mes CheckBox "at-runtime", je suis obligé de créer des modules de classe pour leur affecter une action.
C'est ce que j'ai fait, et le clic dans la CheckBox active bien les autres CheckBox, mais si on décoche la CheckBox les autres CheckBox restent cochées.
Comme il n'y a pas de fonctions "unclick", je ne sais pas trop comment m'y prendre ?
Code de l'userform :
Dim Chk2 As New ChkEvents2
Private Sub UserForm_Initialize()
Dim BtnOKCell As MSForms.CommandButton, ChkB2 As MSForms.CheckBox
[...]
Set ChkB2 = ChoixCells.Controls.Add("Forms.CheckBox.1", "CheckBox2", True)
ChkB2.Enabled = False
ChkB2.Caption = "2G"
ChkB2.Top = 50
ChkB2.Left = 12
ChkB2.Height = 35
ChkB2.Width = 35
Set Chk2.ChkEvents2 = ChkB2
Code du module de classe :
' Module de classe qui permet de prendre en compte les nouveaux boutons de commande créés "at-runtime", afin de pouvoir les utiliser
Public WithEvents ChkEvents2 As MSForms.CheckBox
' Cocher G900 et D1800 lorsqu'on coche "2G"
Private Sub ChkEvents2_Click()
On Error GoTo ChkBoxInexistante
For X = 40 To 46
ChoixCells.Controls("CheckBox4") = True
ChoixCells.Controls("CheckBox7") = True
If ChoixCells.Controls("CheckBox" & X) = False Then
ChoixCells.Controls("CheckBox" & X) = True
End If
ChkBoxInexistante:
On Error GoTo -1
Next
End Sub
P.S. : J'ai volontairement tronqué mon code car c'est pour le travail et je ne préfère pas partager trop les données
Merci d'avance pour votre aide.
Bonjour,
If ChoixCells.Controls("CheckBox" & X) = False Then
ChoixCells.Controls("CheckBox" & X) = True
à remplacer par
ChoixCells.Controls("CheckBox" & X) = état de ta checkbox maitre non ?
eric