Checkbox compter les cases à cocher (vba)
Résolu/Fermé
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
-
2 févr. 2011 à 16:38
japlo Messages postés 39 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 15 février 2011 - 4 févr. 2011 à 13:52
japlo Messages postés 39 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 15 février 2011 - 4 févr. 2011 à 13:52
A voir également:
- Checkbox compter les cases à cocher (vba)
- Excel compter cellule couleur sans vba - Guide
- Case à cocher outlook - Forum Outlook
- Supprimer case à cocher excel - Forum Excel
- Cases à cocher - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
10 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
2 févr. 2011 à 17:25
2 févr. 2011 à 17:25
Bonjour,
Je pense que c'est quelque chose comme ça que tu veux...
A+
Je pense que c'est quelque chose comme ça que tu veux...
Private Sub CommandButton1_Click() Dim Compteur As Integer, Check As Integer Dim Obj As OLEObject 'boucle sur les objets de la Feuil1 For Each Obj In Sheets("Feuil1").OLEObjects 'verifie s'il s'agit d'un CheckBox If TypeOf Obj.Object Is MSForms.CheckBox Then Compteur = Compteur + 1 If Obj.Object.Value Then Check = Check + 1 End If Next Obj Sheets("Feuil1").[A1].Value = "Nombre de CheckBox = " & Compteur Sheets("Feuil1").[A2].Value = "CheckBox checker = " & Check End Sub
A+
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
2
2 févr. 2011 à 18:36
2 févr. 2011 à 18:36
Salut,
en fait je vais essayer d'etre plus précis.
j'ai une feuille ecxel (feuil1) avec un bouton, lorsque je clic dessus cela m'ouvre un formulaire dans le lequel nous retrouvons un voir plus de CheckBox et un bouton de validation servant de fermeture du formulaire.
Je veux qu'a chaque fois que j'ouvre mon formulaire et qu'un CheckBox est coché le résultat se marque en a1 de la feuille 1 par exemple et qu'il s'addition à chaque fois.
Private Sub CheckBox1_Click()
Dim Compteur As Integer, Check As Integer
Dim Obj As OLEObject
'boucle sur les objets de la Feuil1
For Each Obj In Sheets("Feuil1").OLEObjects
'verifie s'il s'agit d'un CheckBox
If TypeOf Obj.Object Is MSForms.CheckBox Then
Compteur = Compteur + 1
If Obj.Object.Value Then Check = Check + 1
End If
Next Obj
Sheets("Feuil1").[A1].Value = "Nombre de CheckBox = " & Compteur
Sheets("Feuil1").[A2].Value = "CheckBox checker = " & Check
End Sub
Private Sub CommandButton1_Click()
UserForm1.Hide
End Sub
Sinon j'avais trouvé cette petite fonction qui marche tres bien mais que je n'arrive pas à adapter
Dim Val1
'Dim Resultat As Integer (pour un résultat en entier)
Val1 = Sheets("Feuil1").[A1].Value
Resultat = Val1 + 1
Sheets("Feuil1").[A1].Value = (Resultat)
a+
en fait je vais essayer d'etre plus précis.
j'ai une feuille ecxel (feuil1) avec un bouton, lorsque je clic dessus cela m'ouvre un formulaire dans le lequel nous retrouvons un voir plus de CheckBox et un bouton de validation servant de fermeture du formulaire.
Je veux qu'a chaque fois que j'ouvre mon formulaire et qu'un CheckBox est coché le résultat se marque en a1 de la feuille 1 par exemple et qu'il s'addition à chaque fois.
Private Sub CheckBox1_Click()
Dim Compteur As Integer, Check As Integer
Dim Obj As OLEObject
'boucle sur les objets de la Feuil1
For Each Obj In Sheets("Feuil1").OLEObjects
'verifie s'il s'agit d'un CheckBox
If TypeOf Obj.Object Is MSForms.CheckBox Then
Compteur = Compteur + 1
If Obj.Object.Value Then Check = Check + 1
End If
Next Obj
Sheets("Feuil1").[A1].Value = "Nombre de CheckBox = " & Compteur
Sheets("Feuil1").[A2].Value = "CheckBox checker = " & Check
End Sub
Private Sub CommandButton1_Click()
UserForm1.Hide
End Sub
Sinon j'avais trouvé cette petite fonction qui marche tres bien mais que je n'arrive pas à adapter
Dim Val1
'Dim Resultat As Integer (pour un résultat en entier)
Val1 = Sheets("Feuil1").[A1].Value
Resultat = Val1 + 1
Sheets("Feuil1").[A1].Value = (Resultat)
a+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
3 févr. 2011 à 08:19
3 févr. 2011 à 08:19
Difficile de comprendre ce que tu veux faire mais comme tu dis que ça fonctionne avec ton exemple..
??
Private Sub CheckBox1_Click() Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value +1 End Sub
??
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
2
3 févr. 2011 à 12:22
3 févr. 2011 à 12:22
Salut écoute à apparement ça fonctionnerai comme ça le seul truc c'est que je voudrai que mon formulaire soit toujours vierge lorsque je l'ouvre.
Private Sub CheckBox1_Click()
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value + 1
End Sub
Private Sub CheckBox2_Click()
Sheets("Feuil1").[b1].Value = Sheets("Feuil1").[b1].Value + 1
End Sub
Private Sub CommandButton1_Click()
UserForm1.Hide
End Sub
A+
Private Sub CheckBox1_Click()
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value + 1
End Sub
Private Sub CheckBox2_Click()
Sheets("Feuil1").[b1].Value = Sheets("Feuil1").[b1].Value + 1
End Sub
Private Sub CommandButton1_Click()
UserForm1.Hide
End Sub
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
2
3 févr. 2011 à 14:24
3 févr. 2011 à 14:24
En fait j'ai trouvé
'Opération de tranfert de donnée en A1
Private Sub CheckBox1_Click()
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value + 1
End Sub
'Opération de tranfert de donnée en B1
Private Sub CheckBox2_Click()
Sheets("Feuil1").[b1].Value = Sheets("Feuil1").[b1].Value + 1
End Sub
Private Sub CommandButton1_Click()
CheckBox1.Value = False
CheckBox2.Value = False
'Fermeture du formulaire
UserForm1.Hide
End Sub
L'incovéniant est que si tu fais une erreur de case et que tu veux la décocher ça te rajoute +1 encore alors qu'il serait plus judicieux que ça fasse -1 cela eviterait les erreurs.
'Opération de tranfert de donnée en A1
Private Sub CheckBox1_Click()
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value + 1
End Sub
'Opération de tranfert de donnée en B1
Private Sub CheckBox2_Click()
Sheets("Feuil1").[b1].Value = Sheets("Feuil1").[b1].Value + 1
End Sub
Private Sub CommandButton1_Click()
CheckBox1.Value = False
CheckBox2.Value = False
'Fermeture du formulaire
UserForm1.Hide
End Sub
L'incovéniant est que si tu fais une erreur de case et que tu veux la décocher ça te rajoute +1 encore alors qu'il serait plus judicieux que ça fasse -1 cela eviterait les erreurs.
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
2
3 févr. 2011 à 14:31
3 févr. 2011 à 14:31
En fait je dis des anneries lorsque je ferme le formulaire vue que ça le décoche ça rajoute +1 une fois de plus ce qui nous fait 2 en réalité !!!
Donc comme je n'ai plus le probleme lors de la fermeture
'Opération de tranfert de donnée en A1
Private Sub CheckBox1_Click()
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value + 1
End Sub
'Opération de tranfert de donnée en B1
Private Sub CheckBox2_Click()
Sheets("Feuil1").[b1].Value = Sheets("Feuil1").[b1].Value + 1
End Sub
Private Sub CommandButton1_Click()
CheckBox1.Value = False
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value - 1
CheckBox2.Value = False
Sheets("Feuil1").[b1].Value = Sheets("Feuil1").[b1].Value - 1
'Fermeture du formulaire
UserForm1.Hide
End Sub
Reste donc toujours le soucis sité précédement lorsque tu décoche la case ????
Donc comme je n'ai plus le probleme lors de la fermeture
'Opération de tranfert de donnée en A1
Private Sub CheckBox1_Click()
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value + 1
End Sub
'Opération de tranfert de donnée en B1
Private Sub CheckBox2_Click()
Sheets("Feuil1").[b1].Value = Sheets("Feuil1").[b1].Value + 1
End Sub
Private Sub CommandButton1_Click()
CheckBox1.Value = False
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value - 1
CheckBox2.Value = False
Sheets("Feuil1").[b1].Value = Sheets("Feuil1").[b1].Value - 1
'Fermeture du formulaire
UserForm1.Hide
End Sub
Reste donc toujours le soucis sité précédement lorsque tu décoche la case ????
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
3 févr. 2011 à 19:38
3 févr. 2011 à 19:38
Private Sub CheckBox1_Click() Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value + Abs(CheckBox1.value) End Sub
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
2
Modifié par japlo le 3/02/2011 à 22:25
Modifié par japlo le 3/02/2011 à 22:25
Cool c'est deja presque parfait !!!!
'Opération de tranfert de donnée en A1
Private Sub CheckBox1_Click()
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value + Abs(CheckBox1.Value)
End Sub
'Opération de tranfert de donnée en B1
Private Sub CheckBox2_Click()
Sheets("Feuil1").[b1].Value = Sheets("Feuil1").[b1].Value + Abs(CheckBox2.Value)
End Sub
Private Sub CommandButton1_Click()
CheckBox1.Value = False
CheckBox2.Value = False
'Fermeture du formulaire
UserForm1.Hide
End Sub
Le seul truc qui me chagrine encore c'est l'histoire d'erreur de case cocher pour que la comptabilité revienne à l'etat anterieur.
Merci à toi pour ton aide
Cordialement japlo
'Opération de tranfert de donnée en A1
Private Sub CheckBox1_Click()
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value + Abs(CheckBox1.Value)
End Sub
'Opération de tranfert de donnée en B1
Private Sub CheckBox2_Click()
Sheets("Feuil1").[b1].Value = Sheets("Feuil1").[b1].Value + Abs(CheckBox2.Value)
End Sub
Private Sub CommandButton1_Click()
CheckBox1.Value = False
CheckBox2.Value = False
'Fermeture du formulaire
UserForm1.Hide
End Sub
Le seul truc qui me chagrine encore c'est l'histoire d'erreur de case cocher pour que la comptabilité revienne à l'etat anterieur.
Merci à toi pour ton aide
Cordialement japlo
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
Modifié par lermite222 le 4/02/2011 à 12:30
Modifié par lermite222 le 4/02/2011 à 12:30
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value + IIf(CheckBox1.Value, 1, -1)
Et pour le bouton..
Avec Hide tu ne ferme pas le UF, tu le cache, c'est pour cela que tu doit remettre tes checkbox à false.
Met simplement..
Private Sub CommandButton1_Click() Unload Me End If
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
2
4 févr. 2011 à 13:52
4 févr. 2011 à 13:52
Salut,
je croix que nous arrivons au terme de la question voici donc le projet.
'Opération de tranfert de donnée en A1
Private Sub CheckBox1_Click()
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value + IIf(CheckBox1.Value, 1, -1)
End Sub
'Opération de tranfert de donnée en B1
Private Sub CheckBox2_Click()
Sheets("Feuil1").[b1].Value = Sheets("Feuil1").[b1].Value + IIf(CheckBox2.Value, 1, -1)
End Sub
'Fermeture du formulaire
Private Sub CommandButton2_Click()
Unload Me
End Sub
Merci pour ton intervention
Cordialement japlo
je croix que nous arrivons au terme de la question voici donc le projet.
'Opération de tranfert de donnée en A1
Private Sub CheckBox1_Click()
Sheets("Feuil1").[A1].Value = Sheets("Feuil1").[A1].Value + IIf(CheckBox1.Value, 1, -1)
End Sub
'Opération de tranfert de donnée en B1
Private Sub CheckBox2_Click()
Sheets("Feuil1").[b1].Value = Sheets("Feuil1").[b1].Value + IIf(CheckBox2.Value, 1, -1)
End Sub
'Fermeture du formulaire
Private Sub CommandButton2_Click()
Unload Me
End Sub
Merci pour ton intervention
Cordialement japlo