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

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

Tout simplement...

Des fois on se complique tellement la vie

Merci beaucoup pour ton aide !

Rechercher des sujets similaires à "comment module classe fonction unclick"