Cocher et Décocher une chkBox

Résolu
Signaler
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014
-
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
-
Je suis novice en Visual Basic !!!

Je veux utiliser un tableau de chkNom (allant de la ligne 0 à la ligne 21)
chkNom(0).Caption = "Tous"
chkNom(1).Caption = "A"
chkNom(2).Caption = "B"
chkNom(3).Caption = "C"
...
chkNom(20).Caption = "T"
chkNom(21).Caption = "Autres"

Je veux gérer le cochage et le décochage de la chkNom

De sorte que cocher ou décocher chkNom(0)
entraîne le cochage ou décochage des chkNom(1 à 21)

De plus, chaque changement d'état de l'une ou l'autre chkNom(1 à 21) entrâine l'éxecution d'une routine (FonctionVisualisation). Cette FonctionVisualisation effectue des instructionsA si l'état de chkNom(index) est à 1 ou effectue des instructionsB si l'état de chkNom(index) est à 0

Pas si simple, car d'entrée de jeu, je dois par programme initialiser chkNom(0 à 21) à la valeur 1

Qui peut m'aider ???
Merci d'avance.

JYD

5 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
il te faut gerer le tout sur l'évènement click du groupe de checkbox.

Si l'index est 0 alors tu attribue aux autres checkbox la valeur du checkbox 0 avec une boucle. Si l'index est différent de 0 tu appelle ta fonction suivant l'état du checkbox n° index.

Ensuite dans le form_load pour tout cocher il te suffit de cocher simplement le checkbox 0, c'est l'évènement du groupe de checkbox qui se chargeras de cocher le reste.

Attention toutefois, chaque fois que tu change la valeur d'un checkbox, que ce soit par le code pour sur l'interface, l'évènement click est déclenché.

Dans ton cas, lorsque tu cochera ou décocheras tout, l'évènement sera déclenché 21 fois en cascade.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
130
une simple boucle est hop c'est dans la poche :

For i = 0 to 21
    chkNom(i).Checked = vbUnchecked 'ou vbChecked pour tout cocher
next i
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014

Mon problème n'est au niveau de la boucle.

Mais mon problème se trouve dans le (dé)cochage de chkNom(0)... qui entraine des changements pour les éléments 1 à 21


et dans le (dé)cochage des chkNom(1 à 21).

Merci de votre aide

jyd
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014

Génial... C'est exactement là mon problème,

C'est que cette cascade de 21 fois ne peut être générée qu'une seule fois.

Merci de votre aide.

jyd
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
Bonjour,
Si tu avais validé la réponse, j'aurais pu consacrer du temps à des cas non résolus
Bonne journée. JML