[Déplacé VB6 --> VBA] CheckBox Multiples.

Signaler
Messages postés
25
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
13 juin 2013
-
Messages postés
25
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
13 juin 2013
-
Bonjour, sur un frame j'ai 3 checkbox et je désir n'en valider qu'une à la fois, j'ai fait ceci :

Private Sub CheckBox1_Click()
If CheckBox1.Value Then
CheckBox1.Value = 1
CheckBox2.Value = 0
CheckBox3.Value = 0
End If
End Sub

Private Sub CheckBox2_Click()
If CheckBox2.Value Then
CheckBox1.Value = 0
CheckBox2.Value = 1
CheckBox3.Value = 0
End If
End Sub

Private Sub CheckBox3_Click()
If CheckBox3.Value Then
CheckBox1.Value = 0
CheckBox2.Value = 0
CheckBox3.Value = 1
End If
End Sub


Ça fonctionne mais je suis pas sur que ce soit optimisé ?

Peut-on mieux faire ?

Merci à tous.

Vincent.

15 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut
Si, ce serait la bonne méthode.
Pourquoi ne pas utiliser des OptionButton à la place ?
Ils font exactement une seule sélection à la fois (si dans la même Frame)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Pardon "s'il sont dans la même Frame" (ou forme) ET qu'il sont indexés
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
clair que c'est le comportement par défaut des optionuttons

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
25
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
13 juin 2013
1
Ok, je découvre, un exemples d'optionbuttons serai le bien venu.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
un exemple ?

place trois optionButtons sur ta Form, change leur nom et leur Caption a ta convenance

et lance ton projet

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Pour qu'un groupe d'OptionButton réagissent les uns par rapport aux autres, il faut :
- les placer dans le même espace : Form ou Frame
- ou indexer les OptionButton : Ils formeront ainsi un sous-groupe

Dans ce dernier cas, si, sur une même Form ou Frame, tu veux afficher deux groupes d'OptionButtons (A-B-C et un peu plus loin D-E-F) mais sans qu'un choix dans D-E-F interfère avec A-B-C, il te faut créer une indexation des OptionButton (propriété Index du premier objet) par groupe :
OptionButtonABC --> Indexés = OptionButtonABC(0), OptionButtonABC(1) et OptionButtonABC(2)
OptionButtonDEF --> Indexés = OptionButtonDEF(0), OptionButtonDEF(1) et OptionButtonDEF(2)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,

J'ai comme l'impression de ce que 20centvidal ne pourra pas utiliser de groupes de contrôles indexés

1) les noms de baptême utilisés
2) sa première discussion (sur deux) a dû être déplacée vers VBA ...
Tu développes sous quoi, 20centvidal : VB6 ou VBA ?

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" (en bas d'une solution adéquate)
Messages postés
25
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
13 juin 2013
1
Merci pour les exemples, je suis en VBA (sous excel 2003).
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Merci pour les exemples, je suis en VBA (sous excel 2003)

mais regarde doinc oiù tu as "posté"
Accueil > Forum > Visual Basic 6 > Divers

ce qui fait que Jack t'a répondu ceci :
il te faut créer une indexation des OptionButton (propriété Index du premier objet) par groupe :
OptionButtonABC --> Indexés = OptionButtonABC(0), OptionButtonABC(1) et OptionButtonABC(2)
OptionButtonDEF --> Indexés = OptionButtonDEF(0), OptionButtonDEF(1) et OptionButtonDEF(2)

qui ne marche que ... sous VB6
D'où l'importance (on ne le répètera jamais suffisamment) de choisir le thème correspondant à son outil de développement


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
[color=red]Cliquer sur "Réponse acceptée" (en bas d'une solu
Messages postés
25
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
13 juin 2013
1
Pour moi, a mon niveau, du VB c'est du VB, si ça cause des états d'âmes à certain pointilleux ils ont qu'a se souvenir qu'ils ont débuté un jour ... Notamment sur les forums, alors si je suis pas au bon endroit c'est que ça doit pas être si clair que ça, ceci étant que puis-je faire pour mettre l'ensemble dans le bon topic ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Le problème, vois-tu, n'est pas celui d'états d'âme !
Il est tout bêtement celui-ci : tu as reçu une réponse VB6 (où tu as posté)à non valable pour VBA (omù tu aurais dû poster) !
Et il a fallu que nous te posions une question (après quelques messages devenus inutiles) pour le réaliser !
C'est bête, hein ? Tu auras perdu autant de temps que nous ...
Il existe une rubrique où tu aurais dû poster (celle où a été déplacée ton autre discussion).
Voilà. Mais tu le prends comme tu veux ( c'est finalement toi qui perds le temps que tu a fait perdre aux autres )

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
[color=red]Cliquer sur "Réponse acceptée" (en bas d'une solu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Regarde simplement où il a fallu déplacer ton autre discussion :
http://www.vbfrance.com/forum/sujet-DEPLACE-VB6-GT-VBA-VB-CHEMIN-RELATIF-ABSOLU_1386546.aspx
cela ne demande aucun effort de type particulier.

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
[color=red]Cliquer sur "Réponse acceptée" (en bas d'une solu
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Catégorie modifiée
24h de perdues bêtement

Tu gardes les recommandations concernant le placement des OptionButton sur les Form / Frame et tu oublies l'indexation.
En faisant de simples essais, tu verras comment ça fonctionne.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
fichtre, on en est encore là :

"donnez moi des exemples pour les OptionButton"

diantre !

le truc, c'est que mettre comme exemple ?

tu place trois OptionButton sur ton formulaire, tu lance se dernier

et quand tu coche une option, les autres se décochent automatiquement...

rien de bien complexe en somme.



Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
25
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
13 juin 2013
1
Ok, merci pour le changement, j'ai fait l'essai sans indexation et ça fonctionne parfaitement. Le tout était de regrouper les optionButtons ensemble afin que la sélection unique marche. Merci à tous.