VBA CheckBox

Fermé
louis - 23 mai 2008 à 11:57
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 23 mai 2008 à 16:48
Bonjour,

J'ai créé une CheckBox sur une feuille Excel et je voudrais m'en servir de la manière suivante :

If CheckBox1.Value = True Then
Renouv = 1
Else
Renouv = 0
End If

J'ai le droit à une erreur 424. Je ne comprend pas pourquoi ça ne fonctionne pas : est ce que j'ai oublié quelque chose ?

Merci par avance

11 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
23 mai 2008 à 12:06
Bonjour,

As-tu déclaré Renouv ?

;o)
0
Oui je l'ai déclaré : et quand l'erreur apparait il me sélectionne la ligne If CheckBox1.Value = True Then

On dirait que VBA ne reconnait pas CheckBox1
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
23 mai 2008 à 12:16
Es-tu sûr que le nom soit bien CheckBox1 dans la propriété ?
0
Oui j'ai commencé par vérifier ça
En fait quand je tape checkbox, VBA ne met pas en forme automatiquement : il ne met pas les majusculues, comme s'il ne reconnaissait pas ce format
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
23 mai 2008 à 13:41
Oui c'est normal, mais si tu tapes "chekbox1.value = true", lorsque tu vas à la ligne tu as bien ChekBox1.Value = True. Ca veut dire que le controle et la propriété sont reconnus.
Par contre ça fonctionne très bien chez moi ... l'erreur 424 concerne je crois un objet requit ... As-tu bien fait Dim Renouv As Integer ?
Sinon je ne vois pas d'où ça peut venir ...
0
Je ne comprends pas pourquoi ça ne marche pas : ça devrait fonctionner, il n'y a aucun problème sur la papier

Voici la macro en l'état :

Sub Caseàcocher10_Clic()

If CheckBox10.Value = True Then
Renouv = 1
Else
Renouv = 0
End If
MsgBox (Renouv)
End Sub

Si j'enlève le .value, je n'obtiens plus le message d'erreur, mais bien une boite de message avec marqué 0 systématiquement.
On dirait que VBA ne reconnait pas l'instruction CheckBox10.Value
Je suis sur Excel 2007, mais ça ne change rien ?

PS merci pour le coup de main, c'est tellement frustrant...
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
23 mai 2008 à 14:07
lol .... j'ai vu le blème ... voilà ce que tu dois mettre :
Sub Caseàcocher10_Clic() 

If Caseàcocher10.Value = True Then 
   Renouv = 1 
Else 
   Renouv = 0 
End If 
MsgBox (Renouv) 
End Sub 


Voir le post 3 ... le nom du contrôle c'est "Caseàcocher10" et non ChekcBox10 qui est le type de l'objet ...

un conseil : évite les accents dans les noms de variables, d'objets ou de fonctions en programmation ...

;o)

polux
0
J'ai mis exactement cela mais ça ne change rien au problème.

J'ai tenté de mettre :

If Sheets("Hypothèses").Caseàcocher12.Value = True Then

Mais ça me donne erreur 438.

On dirait que c'est sans issue... merci quand même Polux : parfois on bat vba, parfois vba nous bat... c'est le jeu...
0

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

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
23 mai 2008 à 14:48
Non non ... VBA n'a jamais le dernier mot ... manquerait plus que ça ... ou alors je change de métier !!!

Ton If Sheets("Hypothèses").Caseàcocher12.Value = True Then ne peut pas marcher, ça c'est clair et c'est ce que signale l'erreur.

Mais je suis sûr que le bout de code que j'ai mis fonctionne. Pour preuve : https://www.cjoint.com/?fxoWfyq8FT

Il y a quelque chose d'autre ...

;o)

polux

0
J'ai quand même l'impression que ma version d'Excel joue son rôle dans le fait que ça ne marche pas : c'est le Excel version Vista, donc la boite à outils est pas pareil.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
23 mai 2008 à 14:59
Je ne connais pas Excel Vista ... c'est Excel 2007 ?
0
Je pense que oui. Voila un lien d'un autre forum : la personne a le même problème que moi et personne arrive à le résoudre non plus. C'est déséspérant...

https://www.developpez.net/forums/d291961/logiciels/microsoft-office/excel/macros-vba-excel/vba-e-checkbox-confition-if-excel/
0
Je ne sais pas si cela change quelques chose, mais ma macro est dans un module, tandis que celle que tu as créé Polux se situe elle dans la fenêtre VBA de la feuille 1
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
23 mai 2008 à 16:15
je pense en effet que ça peut être ça ... sinon ça ne marche pas :O))

;o)
0
J'ai trouvé !!!!

En fait j'insérais un mauvais type d'objet : j'insérais un contrôle de formulaire, alors que j'aurais dû insérer un contrôle ActiveX.
Maintenant la macro fonctionne parfaitement, je n'ai plus aucun problème.

Merci pour ton temps et ton aide Polux,

A la prochaine (car on risque de me revoir dans le coin :p)

Louis
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
23 mai 2008 à 16:48
:o)
Pas de blème ...

Bonne continuation

;o)

polux
0