Cocher/décocher une checkbox [Résolu]

cs_yuri67 23 Messages postés mercredi 10 mai 2006Date d'inscription 25 juin 2006 Dernière intervention - 15 juin 2006 à 11:45 - Dernière réponse : cs_yuri67 23 Messages postés mercredi 10 mai 2006Date d'inscription 25 juin 2006 Dernière intervention
- 16 juin 2006 à 18:53
Bonjour,

J'aiemrai cocher et décocher 3 checkbox (qui représente jour, mois, année) suivant le graphique que je veux, le probleme, c'est que une fois une checkbox cocher, je ne peux pas en cocher une 2e et décocher la precedente


j'ai essayer le code suivant:


Private Sub Check1_Click()

Check1.Value = Checked
Check2.Value = Unchecked
Check3.Value = Unchecked
End Sub

Private Sub Check2_Click()

Check1.Value = Unchecked
Check2.Value = Checked
Check3.Value = Unchecked
End Sub


Private Sub Check3_Click()

Check1.Value = Unchecked
Check2.Value = Unchecked
Check3.Value = Checked
End Sub

J'ai le message d'erreur

erreur d'execution '28'
espace de pile insuffisant

Comment faire pour cocher une checkbox 1 par un click puis cocher une autre checkbox et désactiver la 1ere ?

merci
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 15 juin 2006 à 11:54
3
Merci
Normal : lorsque tu check le checkbox1 dans ton événement click, cela déclenche de nouveau l'événement click, et ainsi de suite !

La solution ?
Soit passer par un optionbutton à la place des checkboxex, soit utiliser l'astuce suivante :

Private Sub Check1_Click()
Static bCheck As Boolean

if not bCheck Then
    bCheck = true
    Check1.Value = vbChecked
    Check2.Value = vbUnchecked
    Check3.Value = vbUnchecked
    bCheck = false
end if

End Sub

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 82 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Meilleure réponse
cs_franckydeluka 228 Messages postés mardi 5 avril 2005Date d'inscription 4 janvier 2008 Dernière intervention - 15 juin 2006 à 12:05
3
Merci
Salut

en fait ton erreur vient du fait qu'à chaque fois que tu attribue une nouvelle valeur aux autres checkbox cela déclenche l'événement clique des autres checkbox donc rechange une nouvelle fois les valeurs de toutes les checkox qui redéclenche l'évenement clique... tu tournes en rond... d'où l'erreur 28.

Si tu veux continuer avec ton code il y a encore plus simple  : il suffit de faire un test à chaque fois.
essaie de faire ceci :

Private Sub Check1_Click()
If Check1.Value = 1 Then
    Check2.Value = 0
    Check3.Value = 0
End If
End Sub

Private Sub Check2_Click()
If Check2.Value = 1 Then
    Check1.Value = 0
    Check3.Value = 0
End If
End Sub

Private Sub Check3_Click()
If Check3.Value = 1 Then
    Check1.Value = 0
    Check2.Value = 0
End If
End Sub

Deluka.

Merci cs_franckydeluka 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 82 internautes ce mois-ci

Commenter la réponse de cs_franckydeluka
Meilleure réponse
medelidrissi 180 Messages postés jeudi 21 août 2003Date d'inscription 26 novembre 2007 Dernière intervention - 15 juin 2006 à 15:36
3
Merci
Bonjour,

Je te conseille plutôt d'utiliser un OptionButton qu'un ChekBox, sinon comme l'a indiqué DARKSIDIOUS tu peux utiliser une variable statique ou bien une variable globale pour ne pas entrer dans la boucle infinie.

Bonne programmation.

Cordialement medelidrissi

<hr />En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.

Merci medelidrissi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 82 internautes ce mois-ci

Commenter la réponse de medelidrissi
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 15 juin 2006 à 11:53
1
Merci
Salut,

en remplacant tes CheckBox par des radio Bouton

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Commenter la réponse de jrivet
cs_yuri67 23 Messages postés mercredi 10 mai 2006Date d'inscription 25 juin 2006 Dernière intervention - 16 juin 2006 à 18:53
0
Merci
merci les gars, en meme pas 10min j'ai reussi a faire ce que je voulai, ca marche impec,

merci bcp,

PS: le sujet et mal placer, si un modo pourrai eventuellement le deplacer dans VB6/GENERAL .. merci,
Commenter la réponse de cs_yuri67

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.