VBA Question - CheckBox Code
Résolu/Fermé
A voir également:
- VBA Question - CheckBox Code
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
9 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
15 oct. 2008 à 11:02
15 oct. 2008 à 11:02
Bonjour,
Essaye avec...
A+
Essaye avec...
Private Sub CommandButton1_Click() Dim Cont As Control For Each Cont In Me.Controls If TypeOf Cont Is MSForms.CheckBox Then Cont.Value = False End If Next Cont End Sub
A+
Merci beaucoup pour la rapidité de ta réponse lermite222.
Le code me renvoie une erreur au niveau de la ligne "For Each Cont In Me.Controls" precisement au niveau de "Me.Controls" avec une erreur type "membre de méthode ou de données introuvable"
Toutes mes checkbox sont situées sur une feuille, je n'ai pas créer de Userform spécifique. L'erreur ne viendrait pas de la localisation des controles?
J'avoue que je nage un peu,
Merci d'avance.
Le code me renvoie une erreur au niveau de la ligne "For Each Cont In Me.Controls" precisement au niveau de "Me.Controls" avec une erreur type "membre de méthode ou de données introuvable"
Toutes mes checkbox sont situées sur une feuille, je n'ai pas créer de Userform spécifique. L'erreur ne viendrait pas de la localisation des controles?
J'avoue que je nage un peu,
Merci d'avance.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
15 oct. 2008 à 12:25
15 oct. 2008 à 12:25
Tu doit mettre la routine dans le module de la feuille dans l'événement Clic du bouton.
Si tu tient vraiment à mettre la routine dans un module général tu dit, je modifierai légérement la sub.
Si tu tient vraiment à mettre la routine dans un module général tu dit, je modifierai légérement la sub.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re
j'ai fait plusieurs essais en mettant directement la routine dans la feuille principale sous l'evenement bouton click mais aussi dans un module standard ou un module de classe, cela me renvoie tout de suite une erreur quand je fais le test.
Dans un module standard lorsque j'appel la procedure de la feuille principale par "call" il me renvoie l'erreur "Utilisation incorrect du mot clef me" et dans un module de classe il ya un probleme de referencement avec une erreur type "sub ou function non définie". Dans les 2 cas , j'avais préalablement passé la routine en public sub avec un nom de procédure que j'appel.
Pour le cas de la sheet (feuille de saisie) l'erreur renvoyée reste toujours celle citée dans mon précédent post " me.controls" et j'utilise tout simplement la private sub sous l'evenment click.
Je pense que la solution n'est pas trés loin mais je reste perdu^^
Une petite idée sur le pourquoi de la chose ?
j'ai fait plusieurs essais en mettant directement la routine dans la feuille principale sous l'evenement bouton click mais aussi dans un module standard ou un module de classe, cela me renvoie tout de suite une erreur quand je fais le test.
Dans un module standard lorsque j'appel la procedure de la feuille principale par "call" il me renvoie l'erreur "Utilisation incorrect du mot clef me" et dans un module de classe il ya un probleme de referencement avec une erreur type "sub ou function non définie". Dans les 2 cas , j'avais préalablement passé la routine en public sub avec un nom de procédure que j'appel.
Pour le cas de la sheet (feuille de saisie) l'erreur renvoyée reste toujours celle citée dans mon précédent post " me.controls" et j'utilise tout simplement la private sub sous l'evenment click.
Je pense que la solution n'est pas trés loin mais je reste perdu^^
Une petite idée sur le pourquoi de la chose ?
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
15 oct. 2008 à 16:50
15 oct. 2008 à 16:50
Bon, procédont par ordre
Tu te met sur la feuille avec lex CheckBox
Tu met la barre d'outils Boite à outils Control
Tu clic sur le Mode création (le bouton reste enfoncé).
Tu doubleclic sur ton commandBouton.
Tu va tomber sur...
Tu copie l'intérieur du code que je t'ai mis pour avoir...
CA DOIT FONCTIONNER
Si ça va toujours pas met un classeur alléger sur Cjoint.com et tu met le lien dans un poste suivant
A+
EDIT:
Possible que ça marche pas avec une feuille, modifier le code comme suit
Private Sub CommandButton1_Click()
Dim Cont As Control
with Sheets("Feuil1") 'adapter au nom de la feuille
For Each Cont In .Controls
If TypeOf Cont Is MSForms.CheckBox Then
Cont.Value = False
End If
Next Cont
End With
End Sub
Tu te met sur la feuille avec lex CheckBox
Tu met la barre d'outils Boite à outils Control
Tu clic sur le Mode création (le bouton reste enfoncé).
Tu doubleclic sur ton commandBouton.
Tu va tomber sur...
Private Sub CommandButton1_Click() End Sub
Tu copie l'intérieur du code que je t'ai mis pour avoir...
Private Sub CommandButton1_Click() Dim Cont As Control For Each Cont In Me.Controls If TypeOf Cont Is MSForms.CheckBox Then Cont.Value = False End If Next Cont End Sub
CA DOIT FONCTIONNER
Si ça va toujours pas met un classeur alléger sur Cjoint.com et tu met le lien dans un poste suivant
A+
EDIT:
Possible que ça marche pas avec une feuille, modifier le code comme suit
Private Sub CommandButton1_Click()
Dim Cont As Control
with Sheets("Feuil1") 'adapter au nom de la feuille
For Each Cont In .Controls
If TypeOf Cont Is MSForms.CheckBox Then
Cont.Value = False
End If
Next Cont
End With
End Sub
C'est bien la manip que j'avais fait des le départ. J'ai mis le fichier allégé sur cjoint si tu veux y jeter un coup d'oeil
https://www.cjoint.com/?kprQfmaICC
Encore merci pour ton aide!
https://www.cjoint.com/?kprQfmaICC
Encore merci pour ton aide!
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
15 oct. 2008 à 18:09
15 oct. 2008 à 18:09
Avec le code de mon poste 6 ça fonctionne correctement.
J'ai tester sur ton fichier mais c'est pas la peine de te le renvoyer puisque ça va.
A+
J'ai tester sur ton fichier mais c'est pas la peine de te le renvoyer puisque ça va.
A+
Ca y est ca marche!
Bizarrement j'ai reçu ton dernier post apres avoir posté mon dernier contenant le lien. J'ai essayé le dernier code avec la boucle et tout marche impec.
Il n'y a pas eu de contretemps , j'ai justement gagné une journée.
Merci encore pour ton aide précieuse!
Bizarrement j'ai reçu ton dernier post apres avoir posté mon dernier contenant le lien. J'ai essayé le dernier code avec la boucle et tout marche impec.
Il n'y a pas eu de contretemps , j'ai justement gagné une journée.
Merci encore pour ton aide précieuse!
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
15 oct. 2008 à 17:25
15 oct. 2008 à 17:25
Sorry, j'ai confondu avec un UF, voir ce code pour une feuille...
Désolé pour le contretemps mais je connais bien ces fonctions et je n'ai pas fait les tests que je fais habituellement.
A+
Private Sub CommandButton1_Click() 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 Obj.Object.Value = False End If Next Obj End Sub
Désolé pour le contretemps mais je connais bien ces fonctions et je n'ai pas fait les tests que je fais habituellement.
A+