Ajout de valeur de checkbox

cs_motais Messages postés 6 Date d'inscription dimanche 2 octobre 2011 Statut Membre Dernière intervention 3 janvier 2012 - 2 oct. 2011 à 15:58
nathansecret Messages postés 63 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 31 octobre 2011 - 31 oct. 2011 à 17:27
Bonjour, je souhaiterai connaitre le code d'un programme permettant d'afficher dans une textbox le nombre de checkbox cochées.
Je m'explique:
soit 3 checkbox.
si l'utilisateur en coche une, le résultat donné est 1
si il en coche 2, le résultat donné est 2...

J'ai essayé de definir 3 variables var1, var2 et var3 comme étant les valeurs des checkbox; de dire que if checkbox1.value=true then var1.value=1... et de faire var1+var2+var3

mais cela ne marche pas.
Qui aurait la solution ?

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
2 oct. 2011 à 16:35
Bonjour,

J'espère que tu développes vraiment sous VB6 et pas sous autre chose.
Si tel est bien le cas et que, par exemple, tes 3 checkboxes s'appellent check1, check2 et check3 ===>>
For i = 1 To 3
   nb = nb + Controls("check" & i).Value
 Next
 MsgBox nb

J'insiste : sous VB6 (la présente section du forum)


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
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
2 oct. 2011 à 21:18
Salut

"mais cela ne marche pas."
n'a jamais défini correctement un problème.

En VB6, les CheckBox peuvent avoir 3 états qui ne sont pas True ou False, mais vbChecked, vbUnchecked et vbGrayed
Tout ceci est expliqué dans l'aide.

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_motais Messages postés 6 Date d'inscription dimanche 2 octobre 2011 Statut Membre Dernière intervention 3 janvier 2012
3 oct. 2011 à 02:02
J'avais effectivement essayé avec if Checkbox1=checked then var1=1 mais je vois qu'en effet le code est vbchecked.
Merci.
0
nathansecret Messages postés 63 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 31 octobre 2011
31 oct. 2011 à 17:27
Si tu utilises VB6, le mieux serait de faire un groupe de contrôles (un code pour tous les objets, ce qui réduit le nombre de lignes).

Met un objet CheckBox sur ta Form, puis met lui "0" dans la propriété "Index". Met d'autres objets CheckBox sur tu Form et donne leur le même nom (très important). Ensuite, met dans le code :

Dim Total As Integer

Private Sub CheckBox_Click(Index As Integer)
    Static IsChecked(0 To 2) As Boolean 'ne pas oublier "Static"
    IsChecked(Index) Not (CheckBox(Index).Value vbUnchecked)
    Total = iif(IsChecked(0),1,0) + iif(IsChecked(1),1,0) + iif(IsChecked(2),1,0)
End Sub 


La variable Total contient le nombre de CheckBox cochées, Grayed étant compté comme coché.

PS: Chez moi, VB6 ne fait pas la diffèrence entre vbChecked et Checked.
0