Nombre de coche

Résolu
TiteZ Messages postés 61 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 21 août 2007 - 15 mai 2007 à 14:24
TiteZ Messages postés 61 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 21 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

14 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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]

@+: Ju£i?n
Pensez: Réponse acceptée
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
15 mai 2007 à 14:32
Salut,
je vais teste de mon coté mais a premiere vue:
Pourquoi mettre mavaleur= Checkbox.Value et non pas Obj.Object.Value ?

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
15 mai 2007 à 14:32
Salut,

Il me semble déjà que tu envoie à ta variable(mavaleur) un boolean puis un integer!!!Cela ne peut pas coller!!!

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
TiteZ Messages postés 61 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 21 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 ?
0

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

Posez votre question
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
15 mai 2007 à 14:39
Ben, sauf erreur de ma part, tu fais :

Mavaleur = Checkbox.Value (Sous Vb6, me revois un integer(0 si pas cochée)

Après tu verifies si MaValeur = True ??

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
TiteZ Messages postés 61 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 21 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
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
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

ca serait cooool non ?
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
15 mai 2007 à 14:56
A trop tard.
0
TiteZ Messages postés 61 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 21 août 2007
15 mai 2007 à 14:59
vbchecked ? a quel niveau euh..; je suis plus là...

en tout cas j'ai pas essayé sur vb6 mais mais sur vba il n'aime pas du tout le "val"
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
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é.

A+
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
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.
0
TiteZ Messages postés 61 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 21 août 2007
15 mai 2007 à 15:31
c'est noté...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 mai 2007 à 15:33
Et à ce propos : un vieux "truc" utilisé par les crackers :

 Private Sub Command1_Click()
  If -1 Then MsgBox "on continue" 'où on remplace le msgbox par l'instruction de continuer
End Sub

Je ne vous dis bien évidemment pas où et comment on s'en sert (immoral...)
0
TiteZ Messages postés 61 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 21 août 2007
15 mai 2007 à 15:40
booouuuuuuu ... bah même si tu ne le dis pas ... ça me semble evidement de savoir ou on peut utiliser ce genre de vilaineté  
0
Rejoignez-nous