Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mécano41

XLDnaute Accro
Bonjour à tous,

J'ai le problème suivant :

- quatre cases à cocher (checkbox)
- les trois premières peuvent être cochées simultanément
- si la quatrième est cochée, elle doit décocher les trois autres
- si l'une des trois premières est cochée, elle doit décocher la quatrième

J'ai fait ceci qui fonctionne mais il faut cliquer deux fois sur la quatrième (PasAjout). Une première fois pour décocher les trois autres, une seconde pour qu'elle se coche

Code:
Private Sub AjoutChiff_Click()
PasAjout.value = False
End Sub

Private Sub AjoutContr_Click()
PasAjout.value = False
End Sub

Private Sub AjoutEsp_Click()
PasAjout.value = False
End Sub

Private Sub PasAjout_Click()
AjoutChiff.value = False
AjoutContr.value = False
AjoutEsp.value = False
End Sub

Comment faire?

Autre point : j'oublie 9 fois sur 10 le " .Value " mais cela fonctionne quand même ; c'est grave Docteur ?

En vous remerciant d'avance

Cordialement
 
Re : Cases à cocher

RE


Quand tu coches la 4ème check box, les autres ne sont pas décochés?

Chez moi ce code fonctionne
Code:
Private Sub CheckBox4_Click()
If CheckBox4 Then
For i = 1 To 3
Me.Controls("CheckBox" & i) = False
Next
End If
End Sub

Donc celui-ci devrait marcher également
Private Sub PasAjout_Click()
If PasAjout Then
AjoutChiff = False
AjoutContr = False
AjoutEsp= False
End if
End Sub
 
Dernière édition:
Re : Cases à cocher

Re


Je viens de revérifier ce code fonctionne
Code:
Private Sub CheckBox4_Click()
'////////////////////////////
If CheckBox4 Then
'1er essai OK
'For i = 1 To 3
'Me.Controls("CheckBox" & i) = False
'Next
'End If
'////////////////
'variante
CheckBox1 = False
CheckBox2 = False
CheckBox3 = False
End If
End Sub
 
Re : Cases à cocher

bonjour le fil, le forum,
Il suffit je pense de mettre les macro dans l'evenement AfterUpdate de chacunes des chekbox(es):

Private Sub CheckBox1_AfterUpdate()
CheckBox4 = False
End Sub

Private Sub CheckBox2_AfterUpdate()
CheckBox4 = False
End Sub

Private Sub CheckBox3_AfterUpdate()
CheckBox4 = False
End Sub

Private Sub CheckBox4_AfterUpdate()
CheckBox1 = False
CheckBox2 = False
CheckBox3 = False
End Sub

A+
kjin
 
Re : Cases à cocher

Salut mécano, Staple 🙂, kjin 🙂, le Forum 🙂

chez moi comme cela ça fonctionne

Code:
Private Sub CheckBox1_Click()
CheckBox4 = False
End Sub

Private Sub CheckBox2_Click()
CheckBox4 = False
End Sub

Private Sub CheckBox3_Click()
CheckBox4 = False
End Sub

Private Sub CheckBox4_Click()
Dim i As Byte
    If CheckBox4 = True Then
For i = 1 To 3
    Controls("CheckBox" & i) = False
Next i
End If
End Sub

à préciser est-bien dans un UserForm?

Bonne Journée
 
Re : Cases à cocher

Bonjour Dull, kjin, Staple1600, mécano41

Pour basculer une propriéte booléenne on peut utilisé: Not

Checkboxs issus de la boite à outils contrôles, sur une feuille

Code:
Private Sub CheckBox1_Click()
CheckBox4 = False
CheckBox1 = True
End Sub
Private Sub CheckBox2_Click()
CheckBox4 = False
CheckBox2 = True
End Sub
Private Sub CheckBox3_Click()
CheckBox4 = False
CheckBox3 = True
End Sub
Private Sub CheckBox4_Click()
CheckBox4 = Not CheckBox4
CheckBox1 = False
CheckBox2 = False
CheckBox3 = False
End Sub

kjin, AfterUpdate() n'existe pas pour les CheckBox (boite à outils contrôles)

Bonne après-midi
 
Re : Cases à cocher

Merci à tous. J'ai fait des essais mais seul le code de btqr va bien.

Mon problème de départ était dans un code WBA WORD (j'espère qu'ici ce n'est pas une grossièreté 🙂). Je l'ai refait dans EXCEL afin d'être sûr qu'il n'y ait pas un os de côté là...

J'ai reproduit ce qui m'a été donné plus haut par STAPLE avec les deux solutions. D'autre part, comme j'ai besoin que ces cases soient dans un frame pour une raison de présentation, j'ai fait aussi ce cas. J'ai donc essayé les 4 cas dans le fichier joint (pour les différentes solutions, il faut modifier à la main par des ' dans le code)

Le résultat est pour le moins bizarre ... J'ai tout noté dans le fichier.

Encore merci à tous

Cordialement
 

Pièces jointes

Re : Cases à cocher

Juste pour info. Le code de btqr qui va très bien en VBA EXCEL ne va plus en VBA WORD (les boîtes de dialogues ont pourtant toutes le mêmes fonctions...)

Tant pis, je vais m'en sortir d'une manière honteuse 😱 en ne mettant que les trois cases supérieures et sans traiter l'interaction des "_click" mais je garde la solution pour un autre jour, dans EXCEL.

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
738
A
Réponses
17
Affichages
2 K
Azuveus
A
Réponses
2
Affichages
892
Réponses
9
Affichages
1 K
D
Réponses
4
Affichages
991
dkterreur
D
Retour