CheckBox : obligation de cocher qu'une seule case [Résolu]

Signaler
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
2 juillet 2014
-
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
2 juillet 2014
-
Bonjour,

Il y a plusieurs CheckBox dans mon UserForm d'accueil.

Je voudrait que l'utilisateur ne puisse cocher qu'une seule case.

Comment dois-je m'y prendre?

Merci par avance !

3 réponses

Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
351
Bon... aller... je vais être gentil...

Voici comment tu peux faire :

Code à placer dans ton USERFORM
Private Sub onlyOneChkB(Selectedchkb As String)
 Dim cCont As Control
 If Me.Controls(Selectedchkb).Value = True Then
 For Each cCont In Me.Controls
        If TypeName(cCont) = "CheckBox" Then  
            If cCont.Name <> Selectedchkb Then
               cCont.Value = False
            End If
        End If
     Next cCont
End If
End Sub



Et ensuite... pour chacune de tes Checkbox... tu places cette ligne de code:
 onlyOneChkB (Me.CheckBox1.Name)


En remplacçant "CheckBox1" par le nom de la checkBox dans laquelle tu as mis cette fonction..

Par exemple :

'Ma première checkBox
Private Sub CheckBox1_Click()
    onlyOneChkB (Me.CheckBox1.Name)
End Sub

'Une deuxième CheckBoxe
Private Sub CheckBox2_Click()
    onlyOneChkB (Me.CheckBox2.Name)
End Sub

'Etc...


Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
2 juillet 2014

Nickel ! c'est parfait Jordane45 !

Merci beaucoup
Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
351
Bonjour,

Le plus simple serait de mettre des boutons radio dans ce cas...
Messages postés
16037
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2021
551
Je plussoie
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
Oui Jordane45 a raison mais sinon tu peux coller ce code à modifier bien entendu pour chaque case à cocher selon ton code.

Private Sub CheckBox1_Click()
If CheckBox1.Value = False Then
    CheckBox2.Locked = False
    CheckBox3.Locked = False
ElseIf CheckBox1.Value = True Then
    CheckBox2.Locked = True
    CheckBox3.Locked = True
Else
End If

End Sub


Edit : Ajout des balises de code ...
Messages postés
16037
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2021
551
Enfin quand il y en a dix.....