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

Utilisateur anonyme - 21 janv. 2010 à 12:09
 Utilisateur anonyme - 22 janv. 2010 à 09:31
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

cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
21 janv. 2010 à 13:35
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)
0
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
21 janv. 2010 à 13:36
Pardon "s'il sont dans la même Frame" (ou forme) ET qu'il sont indexés
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
21 janv. 2010 à 13:41
clair que c'est le comportement par défaut des optionuttons

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Utilisateur anonyme
21 janv. 2010 à 14:06
Ok, je découvre, un exemples d'optionbuttons serai le bien venu.
0

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

Posez votre question
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
21 janv. 2010 à 14:21
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
0
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
21 janv. 2010 à 16:53
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)
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
21 janv. 2010 à 17:10
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)
0
Utilisateur anonyme
21 janv. 2010 à 19:15
Merci pour les exemples, je suis en VBA (sous excel 2003).
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
21 janv. 2010 à 20:07
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
0
Utilisateur anonyme
21 janv. 2010 à 20:24
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 ?
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
21 janv. 2010 à 21:07
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
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
21 janv. 2010 à 21:14
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
0
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
22 janv. 2010 à 09:27
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.
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
22 janv. 2010 à 09:31
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
0
Utilisateur anonyme
22 janv. 2010 à 09:31
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.
0