Liaison d'interdépendance entre des cases à cocher

Résolu
dyjatou92 Messages postés 34 Date d'inscription mercredi 15 juin 2016 Statut Membre Dernière intervention 30 septembre 2016 - 15 juin 2016 à 12:50
dyjatou92 Messages postés 34 Date d'inscription mercredi 15 juin 2016 Statut Membre 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

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 juin 2016 à 14:35
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).
0
dyjatou92 Messages postés 34 Date d'inscription mercredi 15 juin 2016 Statut Membre Dernière intervention 30 septembre 2016
15 juin 2016 à 15:08
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 juin 2016 à 17:02
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.

0
dyjatou92 Messages postés 34 Date d'inscription mercredi 15 juin 2016 Statut Membre Dernière intervention 30 septembre 2016
22 juin 2016 à 18:27
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 23/06/2016 à 16:41
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.
0
dyjatou92 Messages postés 34 Date d'inscription mercredi 15 juin 2016 Statut Membre Dernière intervention 30 septembre 2016
27 juin 2016 à 14:57
merci. la prochaine fois j'utiliserai certainement cette solution
0
Rejoignez-nous