Evénement Click pour CheckBox dans UserForm

Bonjour,

Dans un UserForm, j'ai 3 CheckBox disposés comme cela :

image

Je voudrais que :

  • Lorsque on appuie sur CheckBox1, les deux autres CheckBox aient la même valeur que CheckBox1.
  • Lorsque CheckBox2 ou CheckBox3 = 1, que Checkbox1 = 1.

J'ai donc écrit ce code dans le UserForm mais je m'aperçois que l'événement "Click" s'active non seulement lorsque je clique mais aussi quand je change la valeur de la CheckBox (via le code), ce qui fait que je n'arrive pas à programmer ce que je veux.

Private Sub CheckBox1_Click()
If CheckBox1 Then
CheckBox2 = True
CheckBox3 = True
Else
CheckBox2 = False
CheckBox3 = False
End If
End Sub

Private Sub CheckBox2_Click()
If CheckBox2 Or CheckBox3 Then CheckBox1 = True
End Sub

Private Sub CheckBox3_Click()
If CheckBox2 Or CheckBox3 Then CheckBox1 = True
End Sub

Pouvez-vous m'expliquer comment je pourrais m'y prendre et pourquoi l'événement "Click" agit aussi lorsqu'on ne clique pas ? Merci.

bonjour,

Utilise les évènement MouseUp (ou down)

Private Sub CheckBox1_Mouseup(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   If CheckBox1 Then
      CheckBox2 = True
      CheckBox3 = True
   Else
      CheckBox2 = False
      CheckBox3 = False
   End If
End Sub

Private Sub CheckBox2_Mouseup(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   If CheckBox2 Or CheckBox3 Then CheckBox1 = True
End Sub

Private Sub CheckBox3_Mouseup(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   If CheckBox2 Or CheckBox3 Then CheckBox1 = True
End Sub

A+

Merci pour le retour, j'ai testé avec MouseDown et MouseUp mais ça ne fonctionne toujours pas

Private Sub CheckBox1_Mousedown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   If CheckBox1 = True Then
      CheckBox2 = True
      CheckBox3 = True
   Else
      CheckBox2 = False
      CheckBox3 = False
   End If
End Sub

Private Sub CheckBox2_Mousedown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   If CheckBox2 = True Or CheckBox3 = True Then
   CheckBox1 = True
   Else
   CheckBox1 = False
   End If
End Sub

Private Sub CheckBox3_Mousedown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   If CheckBox2 = True Or CheckBox3 = True Then
   CheckBox1 = True
   Else
   CheckBox1 = False
   End If
End Sub

OK c'est bon j'ai réussi finalement merci !

Rechercher des sujets similaires à "evenement click checkbox userform"