Liaison d'interdépendance entre des cases à cocher [Résolu]

Messages postés
34
Date d'inscription
mercredi 15 juin 2016
Dernière intervention
30 septembre 2016
- - Dernière réponse : dyjatou92
Messages postés
34
Date d'inscription
mercredi 15 juin 2016
Dernière intervention
30 septembre 2016
- 27 juin 2016 à 14:57
bonjour à tous. Veuillez bien pouvoir m'aider pour mon problème. En fait j'aimerai avoir la possibilité de cocher des cases sur un ensemble de 9 choix et le choix correspondant à Aucune devra geler tous les autres choix. Pour cela voici le bout de code que j'ai écrit:

Private Sub CheckBox_Aucune_Vitrage_Click()
CheckBox_Nord_Vitrages = Not CheckBox_Aucune_Vitrage
CheckBox_Sud_Vitrages = Not CheckBox_Aucune_Vitrage
CheckBox_Ouest_Vitrages = Not CheckBox_Aucune_Vitrage
CheckBox_Est_Vitrages = Not CheckBox_Aucune_Vitrage
CheckBox_NO_Vitrages = Not CheckBox_Aucune_Vitrage
CheckBox_NE_Vitrages = Not CheckBox_Aucune_Vitrage
CheckBox_SO_Vitrages = Not CheckBox_Aucune_Vitrage
CheckBox_SE_Vitrages = Not CheckBox_Aucune_Vitrage
End Sub

Et pour chacun des 8 autres choix j'ai écris le code suivant:
par exemple pour le vitrage nord

Private Sub CheckBox_Nord_Vitrages_Click()
CheckBox_Aucune_Vitrage = Not CheckBox_Nord_Vitrages
End Sub

Maintenant quand je l'éxecutes il n'y a pas d'erreurs de compilation mais j'ai pas exactement ce que je voulais avoir. En choisissant Aucune, je ne peux opter pour les autres choix (Dieu merci) mais lorsque je choisis le vitrage Nord par exemple, les autres (sans la case Aucune) sont cochés avec.... Comme si j'avais lié ces 8 cases. Merci de bien vouloir m'expliquer comment les délier.
j'espère avoir été assez claire dans mes explications.
Merci d'avance
Afficher la suite 

Votre réponse

5 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,
j'espère avoir été assez claire dans mes explications.

Non, tu ne l'as pas été (assez claire).
Il est difficile de cerner, dans ton "exposé" ce que tu souhaites de ce que tu obtiens.
Essaye d'être plus techniquement précis(e).
Commenter la réponse de ucfoutu
Messages postés
34
Date d'inscription
mercredi 15 juin 2016
Dernière intervention
30 septembre 2016
0
Merci
Ok je reprends. En résumé ce que je voudrais c'est avoir 9 cases à cocher (8 cases correspondant à un ensemble de choix et un dernier correspondant à Aucun c'est à dire aucun des choix proposés). je voudrais que d'une part lorsque qu'on coche Aucun il ne soit plus possible de cocher les autres et d'autre part lorsqu'on coche 1 ou 2 ou 3 des choix proposés il ne soit plus possible de cocher Aucun.
le code que j'ai écrit me permet de désactiver les autres choix lorsque Aucun est coché mais lorsque je coche un choix, tous les autres choix sauf Aucun sont cochés. je voudrais avoir la possibilité de cocher le nombre de choix défini par moi même mais pas les 8 choix en même temps.
Veuillez bien vous référer aux bouts de code de ma première question pour pouvoir m'aider SVP.
Merci
Commenter la réponse de dyjatou92
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
je voudrais que d'une part lorsque qu'on coche Aucun il ne soit plus possible de cocher les autres et d'autre part lorsqu'on coche 1 ou 2 ou 3 des choix proposés il ne soit plus possible de cocher Aucun.

Utilisation alors on ne peut plus simple de la propriété enabled de tes cases à cocher !
Vraiment trop rudimentaire pour que je ne te demande pas de faire d'abord ce petit (vraiment petit) effort.
Reviens (si vraiment encore en difficulté) avec le code tenté sur ces bases.

Commenter la réponse de ucfoutu
Messages postés
34
Date d'inscription
mercredi 15 juin 2016
Dernière intervention
30 septembre 2016
0
Merci
Bon j'ai finalement trouvé cette solution ci:
.d'une part sur l'évènement click de checkBox_Nord_Vitrages (à titre d'exemple. A noter que j'ai fait la même chose pour les vitrages Sud, Ouest,Est,SO,SE,NO,NE):
If CheckBox_Nord_Vitrages.Value = True Then
CheckBox_Aucune_Vitrage.Value = False
End If
.et d'autre part sur l'évènement click de checkBox_Aucune_Vitrage:
If CheckBox_Aucune_Vitrage.Value = True Then
CheckBox_Nord_Vitrages.Value = False
CheckBox_Sud_Vitrages.Value = False
CheckBox_Ouest_Vitrages.Value = False
CheckBox_Est_Vitrages.Value = False
CheckBox_NO_Vitrages.Value = False
CheckBox_NE_Vitrages.Value = False
CheckBox_SO_Vitrages.Value = False
CheckBox_SE_Vitrages.Value = False
End If



Bon à présent j'espère que vous avez compris ce que je voulais vraiment réaliser. Merci de votre aide
Commenter la réponse de dyjatou92
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
BHon...
Si ta difficulté est résolue, libère alors cette discussion (un click sur le tag RESOLU au niveau der ton tout premier message).
NB : ta solution est bien lourde. La solution proposée (utilisation de la propriété enabled) était, elle, beaucoup plus légère.
Mais bon ...


EDIT : regarde (exemple avec 4 checkbox sur un userform :
Dans un frame Frame1 : 3 checkboxes checkbox1, checkbox2 et checkbox3
ailleurs sur ton userform : une checkbox checkbox4
et ce code, tout simplement :
Private Sub CheckBox1_Click()
titi
End Sub

Private Sub CheckBox2_Click()
titi
End Sub

Private Sub CheckBox3_Click()
titi
End Sub

Private Sub CheckBox4_Click()
Frame1.Enabled = Not CheckBox4.Value
End Sub

Private Sub titi()
toto = Array("CheckBox1", "CheckBox2", "CheckBox3")
CheckBox4.Enabled = True
For i = 0 To UBound(toto)
If Controls(toto(i)).Value = True Then
CheckBox4.Enabled = False: Exit Sub
End If
Next
End Sub

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
dyjatou92
Messages postés
34
Date d'inscription
mercredi 15 juin 2016
Dernière intervention
30 septembre 2016
-
merci. la prochaine fois j'utiliserai certainement cette solution
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.