XL 2016 Comment gérer des CheckBoxes à l'alternat ?

Dudu2

XLDnaute Barbatruc
Bonjour,

J'ai du bricoler un flag et une séquence complexe pour pouvoir, dans un UserForm, gérer 2 ou plus de checkboxes dont l'une exclut les autres en 1 seul clic.
N'y a-t-il pas plus simple. Je n'y arrive pas ! Même en désactivant les évènements, la valorisation d'une CheckBox provoque son évènement Click().
VB:
Private Sub CheckBox1_Click()
    'MsgBox "Enter CheckBox1_Click - NotRealClick = " & NotRealClick
    Call OffCheckBox(Me.CheckBox2, Me.CheckBox3)
End Sub

Private Sub CheckBox2_Click()
    'MsgBox "Enter CheckBox2_Click - NotRealClick = " & NotRealClick
    Call OffCheckBox(Me.CheckBox1, Me.CheckBox3)
End Sub

Private Sub CheckBox3_Click()
    'MsgBox "Enter CheckBox3_Click - NotRealClick = " & NotRealClick
    Call OffCheckBox(Me.CheckBox1, Me.CheckBox2)
End Sub

'-----------------------------------------
'Décoche les CheckBoxes passée en argument
'-----------------------------------------
Private Sub OffCheckBox(ParamArray TabChB() As Variant)
    Static NotRealClick As Boolean
    Dim ChB As Variant
   
    If NotRealClick = False Then
        NotRealClick = True
        For Each ChB In TabChB
            If ChB.Value Then ChB.Value = False
        Next ChB
        NotRealClick = False
    End If
End Sub
 

Pièces jointes

  • CheckBoxes Exclusives.xlsm
    19.4 KB · Affichages: 16
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour,
Je reviens sur le sujet, juste pour information, car j'ai eu à gérer 2 groupes indépendants d'options.
J'ai essayé avec les boutons d'options et, malgré des tutos (Ctrl + clic gauche etc...) pour créer 2 groupes indépendants dans un UserForm j'ai galéré sans succès.
Je suis donc revenu au système CheckBoxes et au code du Post #1 pour pouvoir m'en sortir.
 

cp4

XLDnaute Barbatruc
Bonjour fanfan38 ;), Dudu2:),

Comme te l'a signalé Fanfan39, tu mets les boutons dans des frames.
Touche Ctrl pour dupliquer les boutons d'option.
dudu.gif
 

Discussions similaires

Statistiques des forums

Discussions
312 322
Messages
2 087 279
Membres
103 507
dernier inscrit
tapis23