Tout selectionner avec une checkbox

Résolu
cs_karamasof Messages postés 11 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 8 décembre 2005 - 30 nov. 2004 à 12:37
cs_karamasof Messages postés 11 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 8 décembre 2005 - 30 nov. 2004 à 14:44
Bonjour, j'aimerai savoir comment on peut faire pour selectionner toutes les checkbox d'une form, avec une checkbox.

en sachant que pour mon cas, la syntaxe suivante ne fonctionne pas

Private Sub CheckBox0_Click()
Dim i As Integer

For i = 1 To 7
If Form1.CheckBox0.Value = True Then
Form1.CheckBox1.Name = True
Else
Form1.CheckBox2.Value = False
End If
Next i
End Sub

Merci d'avance

9 réponses

dthuler Messages postés 121 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 29 avril 2009
30 nov. 2004 à 13:18
Faut préciser, c'est pas du tout le même environnement...

T'as bien vérifié les propriétés de tes checkboxes ? elles doivents être CheckBox1, CheckBox2, CheckBox3... car à ma connaissances les groupes de contrôle n'existent pas sous vba...

Bref, utilise la boucle for each proposée plus haut par exemple comme ceci;

ChkValue = CheckBox1.Value
MsgBox ChkValue
Dim Ctrl As Control
For Each Ctrl In UserForm1.Controls
If Left(Ctrl.Name, 8) = "CheckBox" Then
Ctrl.Value = ChkValue
End If
Next

A toi de jouer...

~~ Brainiax ~~ 8-)
3
cs_karamasof Messages postés 11 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 8 décembre 2005
30 nov. 2004 à 12:40
désoler le bon code est

Private Sub CheckBox0_Click()
Dim i As Integer

For i = 1 To 7
If Form1.CheckBox0.Value = True Then
Form1.CheckBox(i).Name = True
Else
Form1.CheckBox(i).Value = False
End If
Next i
End Sub
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 nov. 2004 à 12:53
Salut,

Le deuxieme code posté fonctionne si les checkbox a coche s appelle Checkbox et ont ete creer comme tableau de controle (copie coller d une check box deja existante).

As tu verifie que toutes tes checkbox a coche s appelaient bien pareil et que leur propriete index allait de 1 a 7?
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
dthuler Messages postés 121 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 29 avril 2009
30 nov. 2004 à 12:59
Salut,

Relis ton code, tu marques en première ligne dans la boucle

form1.CheckBox(i).Name

alors que ça devrait être

form1.CheckBox(i).Value

De plus, les checkbox sont gérées avec trois états;
vbChecked égal à 1
vbUnchecked égal à 0 et
vbGrayed égal à 2

Donc, tu devra changer ton code et mettre 1 ou vbChecked à la place de True et 0 ou vbUnchecked à la place de False.

En te souhaitant bon codage,

~~ Brainiax ~~ 8-)
0

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

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
30 nov. 2004 à 12:59
qu'est-ce ça veut dire Form1.CheckBox(i).Name = True ?
posté 2 fois avec la même erreur, bon supposons ...

Private Sub Check0_Click()
Dim i As Integer
Dim b As Boolean
b = CheckBox0.Value
For i = 1 To 7
Form1.CheckBox(i).Value = b
Next i
End Sub

Daniel
0
dthuler Messages postés 121 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 29 avril 2009
30 nov. 2004 à 13:03
Tu peux utiliser une méthode différente bien que similaire;

un checkbox1 Check1 et un groupe de checkbox2 Check2 par exemple;

Private Sub Check1_Click()
For Each Ctrl In Check2
Ctrl.Value = Check1.Value
Next
End Sub

Plus pratique et tu peux rajouter ou enlever autant de CheckBox2 que tu veux sans devoir modifier le code...

Amuses-toi bien !

~~ Brainiax ~~ 8-)
0
cs_karamasof Messages postés 11 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 8 décembre 2005
30 nov. 2004 à 13:05
Désoler, j'ai corriger le Name en Value.

Mon problème reste que je travailler en vba sous excel et que la propriété index n'existe pas ou du moins je ne la trouve pas. Est ce qu'il y a une propriete qui pourrait remplacer l'index.

merci d'avance
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
30 nov. 2004 à 13:09
en fait les CheckBox ne sont pas à True et à False, la valeur de
CheckBox0.Value est un intéger.
donc il faut remplacer par:
Dim b as Integer

Daniel
0
cs_karamasof Messages postés 11 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 8 décembre 2005
30 nov. 2004 à 14:44
Je vous remercie tous, j'ai réussit.

a++
0
Rejoignez-nous