CheckBox : obligation de cocher qu'une seule case

Résolu
SandraMt Messages postés 58 Date d'inscription jeudi 5 juin 2014 Statut Membre Dernière intervention 2 juillet 2014 - 26 juin 2014 à 14:40
SandraMt Messages postés 58 Date d'inscription jeudi 5 juin 2014 Statut Membre Dernière intervention 2 juillet 2014 - 27 juin 2014 à 08:48
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

jordane45 Messages postés 37525 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 juin 2023 341
26 juin 2014 à 20:10
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...


1
SandraMt Messages postés 58 Date d'inscription jeudi 5 juin 2014 Statut Membre Dernière intervention 2 juillet 2014
27 juin 2014 à 08:48
Nickel ! c'est parfait Jordane45 !

Merci beaucoup
0
jordane45 Messages postés 37525 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 juin 2023 341
26 juin 2014 à 15:06
Bonjour,

Le plus simple serait de mettre des boutons radio dans ce cas...
0
Whismeril Messages postés 18416 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 juin 2023 624
26 juin 2014 à 15:57
Je plussoie
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 4
Modifié par jordane45 le 26/06/2014 à 19:42
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 ...
0
Whismeril Messages postés 18416 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 juin 2023 624
26 juin 2014 à 19:03
Enfin quand il y en a dix.....
0