TiteZ
Messages postés61Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention21 août 2007
-
15 mai 2007 à 14:24
TiteZ
Messages postés61Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention21 août 2007
-
15 mai 2007 à 15:40
Re bonjour,
Oui oui , c'est vrai, je vous l'accorde aujourd'hui je monopolise pas mal le forum...
Objectifs:
je souhaite faire un tableau ( et puis aprés un graphique .... en son temps ....) et pour ça j'ai besoin de connaitre le nombre de "checkbox" qui sont coché dans ma feuille
mon code pour l'instant donne ça...
total = 0
For Each Obj In ActiveSheet.OLEObjects
If TypeOf Obj.Object Is MSForms.CheckBox Then
mavaleur= Checkbox.Value
If mavaleur = True Then
valeure = 0
End If
If mavaleur = False Then
valeure = 1
End If
total =total + valeure
End If
Next
Set result = Worksheets(1).Range("P15")
result = total
End Sub
Mais forcement ça marche pas ... ou ? il semble que mon Checkbox. value ne lui plaise pas ...
Quelqu'un a une idée .?
Merci
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 15 mai 2007 à 14:38
Salut,
Tiens regarde ceci sa semble fonctionner
Dim Total As Integer
Dim Obj As OLEObject
Total = 0
'Pour Chaque OLEObject de la feuille active
For Each Obj In ActiveSheet.OLEObjects
'Si obj est de type CheckBox Alors
If TypeOf Obj.object Is MSForms.CheckBox Then
'On ajoute à total la valeur absolue de la
'valeur du checkbox
'Valeur absolue car True = -1
MsgBox CInt(Obj.object.Value)
Total = Total + Abs(CInt(Obj.object.Value))
End If
Next
ActiveSheet.Range("P15").Value = CStr(Total), ----
[code.aspx?ID=41455 By Renfield]
TiteZ
Messages postés61Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention21 août 2007 15 mai 2007 à 14:36
jrivet... moi il n'a pas apprécié non plus le Obj.object.value....
Exploreur: mavaleur est un booleen mais totale et valeur sont des integer...
je somme donc des entiers ...oU est le souci ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
TiteZ
Messages postés61Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention21 août 2007 15 mai 2007 à 14:52
Lorsque je regarde la value d'une chekbook dans propriété je n'ai que du true ou du false en fonction de la coche
aprés je ne sais pas s'il y a a une difference en vb mais ...
En tout cas ça fonctionne parfaitement merci bcp... jrivet
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 15 mai 2007 à 14:55
En fait, exploreur, je pense que j'ai compris le truc. TiteZ, ce n'est pas true mais peut etre vbchecked comme nous le repete jrivet depuis toujours, ca a du mal a rentrer pour moi aussi.
Me trompe-je ?
Et cela ne pourrait pas marcher directement
total = 0
For Each Obj In ActiveSheet.OLEObjects
If TypeOf Obj.Object Is MSForms.CheckBox Then
total =total + val(Checkbox.Value)
Next
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 15 mai 2007 à 15:03
Laisse tombé si ca marche, te prend pas la tete avec le reste. La fonction val permet de convertir une chaine en valeur mais c'était juste pour essayé.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 15 mai 2007 à 15:24
Quelques explications quand-même (salut Julien)
True a la faleur -1
False a la valeur 0
raison pour laquelle Jrivet additionne les valeurs absolues (sans le signe, donc)Il aurait aussi bien pu ajouter tout simplement les -checkBox.value (car -True -(-1) 1 et - False = -0 = 0)
Pour bien comprendre :
Private Sub Command1_Click()
'on simule ici les valeurs de 3 checkboxes cochées et 2 non cochées
MsgBox -True - True - True - False - False
End Sub
Voilà ! C'était pour l'anecdote et pour aider à y voir bien clair.