Problème de "cases à cocher" Excel 2003

cs_jmh60 Messages postés 9 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 8 décembre 2012 - 6 déc. 2012 à 11:14
cs_jmh60 Messages postés 9 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 8 décembre 2012 - 8 déc. 2012 à 13:24
Bonjour,
Ma config : Excel pour Office 2003
Je n'ai trouvé nulle part sur le forum la réponse à mon problème.
Dans une feuiile qui s'appelle "Commandes", j'ai 4 cases d'options regroupées en 2 groupes
Option_A1 et Option_A2 dans Groupe_A
Option_B1 et Option_B2 dans Groupe_B
Lee fonctionnement à l'air correct car elles me renvoient les bonnes valeurs True et False.
Je voudrai les gérer, c'est à dire rendre un groupe ou l'autre visible ou non en fonction d'une condition donnée par une case à cocher (qui renvoie True ou False), par exemple :

if Case_a_cocher then
Groupe_A est visible
Groupe_B est masqué
else
Groupe_A est masqué
Groupe_B est visible
end if

J'ai testé le code :

Private Sub Case_a cocher_Click()
OptionA1.Visible = Case_a cocher
OptionA2.Visible = Case_a cocher
OptionB1.Visible = not.Case_a cocher
OptionB2.Visible = not.Case_a cocher
End Sub

Ca ne fonctionne que si mes 4 cases à cocher appartiennent toutes au même groupe et que ce groupe s'appelle : Feuil1
Dès que je crée 2 groupes différents j'obtiens à l'exécution :

Erreur d'exécution '1004'
Impossible de définir la propriété Visible de la classe OLEObject

Je remercie d'avance tous ceux qui pourront m'aider à résoudre ce problème
Jean-Marc

15 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
6 déc. 2012 à 16:26
Qu'est-ce "Case_a cocher" ?
Une variable booléenne ?

Le Not devrait être utilisé comme ceci, sans point
OptionB1.Visible = Not Case_a cocher

sans trop savoir ce que ça veut dire dans ton code... (?)

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
cs_jmh60 Messages postés 9 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 8 décembre 2012
6 déc. 2012 à 23:00
Bonjour,
Le "." c'est juste une faute de frappe dans mon post.
Mon code est écrit correctement (sans le point).
Le problème ne vient pas de là
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 déc. 2012 à 23:18
Bonjour,
Le "." c'est juste une faute de frappe dans mon post.
Mon code est écrit correctement (sans le point).


Veux-tu bien mettre ici le code réel, tel que tu l'as écrit (un copier/coller de ton code) ?
Car je vois personnellement dans le code montré, une autre anomalie et n'ai pas l'intention d'aller d'un message à l'autre pour savoir si elle est ou non fondée.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_jmh60 Messages postés 9 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 8 décembre 2012
7 déc. 2012 à 11:03
Bonjour,

Voici mes 2 groupes de 2 cases d'option :

Option_A1 et Option_A2 dans Groupe_A
Option_B1 et Option_B2 dans Groupe_B

Voici mon code :

Private Sub Case_a cocher_Click()
OptionA1.Visible = Case_a cocher
OptionA2.Visible = Case_a cocher
OptionB1.Visible = not Case_a cocher
OptionB2.Visible = not Case_a cocher
End Sub

Et voici le fonctionnement que je recherche :

Si la Case_a_cocher est cochée, alors
...... Groupe_A est visible
...... Groupe_B est masqué

Si la Case_a_cocher n'est PAS cochée, alors
...... Groupe_A est masqué
...... Groupe_B est visible

Merci pour ton aide
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 déc. 2012 à 11:15
Etonnant !
Pourquoi ?
Parce que :
- si Case_a cocher est une case à cocher prise dans les contrôles de formulaire :
1) elle ne saurait avoir ce nom
et
2) elle répondrait à un évènement Clic et non Click
- si Case_a cocher est une checkbox prise dans les contrôles ActiveX :
1) elle répondrait bien à un évènement Click
mais
2) ne saurait recevoir un nom avec un espace !

Explique voir cela
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_jmh60 Messages postés 9 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 8 décembre 2012
7 déc. 2012 à 11:52
Bonjour,
Je ne comprends pas bien ces trucs d'activeX ou pas. Voilà ce que j'ai fait :
Dans Excel, Affichage / Barres d'Outils, j'ai activé :
"Boîte à outils contrôles"
Quand je clique la petite équerre sur la gauxche de cette barre, ce qui active le "mode création".
Dans ce mode je peux prendre des "objets" de la barre et les mettre sur ma feuille Excel.

Toujours en "mode création", un click droit sur n'importe lequel de ces objets me permet d'accéder aux "propriétés"
Pour une "case d'option" il y a une liste de 30 propriétés.

Par exemple pour la case "OptionA1" du groupe "OptionA" :

C'est dans "Name" (1ère ligne) que je mets "OptionA1"
C'est dans "Caption" (8ème ligne) que je mets un titre
C'est dans "GroupName" (12ème ligne) que je mets "OptionA"

Pour la case à cocher, j'ai fait un click droit dessus, il m'a proposé "Visualiser le code" et m'a créé automatiquement le code suivant :

Private Sub Case_a_cocher_Click()

End Sub

C'est entre ces 2 lignes créées automatiquement que j'ai placé le code décrit dans mon premier post.
Ensuite je désactive le "mode création" et je peux exécuter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 déc. 2012 à 11:58
Oui, hein ...
Regarde ce que tu avais mis comme étant ton code "copié/collé"
Private Sub Case_a cocher_Click()

Relis ce que j'avais pourtant dit clairement :
Veux-tu bien mettre ici le code réel, tel que tu l'as écrit (un copier/coller de ton code) ?
Car je vois personnellement dans le code montré, une autre anomalie et n'ai pas l'intention d'aller d'un message à l'autre pour savoir si elle est ou non fondée.

et tu comprendras que je quitte cette discussion (car la suite sera vraisemblablement du même jus, tout au long...)
Un autre prendra le relais. Bonne chance.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_jmh60 Messages postés 9 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 8 décembre 2012
7 déc. 2012 à 15:28
Je ne comprends pas, j'ai bien fait un copier-collé dans mon dernier post. Je ne peux pas faire mieux, si mon code esf faux, c'est pour ça que je suis ici, mais dans mon dernier post, c'est un copier-collé et désolé si dans un post plus vieux j'ai fait une faute de frappe
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 déc. 2012 à 17:02
Ah ?
Pour la case à cocher, j'ai fait un click droit dessus, il m'a proposé "Visualiser le code" et m'a créé automatiquement le code suivant :

Private Sub Case_a_cocher_Click()

End Sub

Ca, c'est vrai
Mais ce dont tu as dit et continue à dire que c'était un copié/collé, à savoir :
Voici mon code :

Private Sub Case_a cocher_Click()
OptionA1.Visible = Case_a cocher
OptionA2.Visible = Case_a cocher
OptionB1.Visible = not Case_a cocher
OptionB2.Visible = not Case_a cocher
End Sub

ne risque pas d'être ton "copié/collé"
et ceci :
j'ai bien fait un copier-collé dans mon dernier post

n'est pas vrai !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 déc. 2012 à 18:58
Bon...
Tu auras quand-même mon aide, mais uniquement si tu es précis sur certains points déterminants :

A/ détermination des types de contrôles utilisés
1) quand tu insères un optionbutton, quel nom par défaut lui attribue Excel ?
2) idem avec ta checkbox

B/ détermination de la manière de groupage des optionbuttons :
1) tu les as mis dans un contrôle Frame ?
ou
2) tu t'es contenté de donner un nom de groupe dans leur propriété GroupName ?

Car : si 1) ===>> possible d'utiliser la propriété Visible du Frame de groupage
Mais si 2) ===>> bien que bénéficiant des "switches" habituels des optionbuttons à l'intérieur de chaque groupe, tu ne peux bénéficier de la propriété Visible pour le groupe ainsi défini et ne pourras alors qu'agir (visible) que sur chacun des optionbuttons du groupe, un par un.

Voilà. J'espère que tout cela n'est pas du chinois pour toi, car alors, il me faudrait venir au-dessus de ton épaule (et çà : impossible).
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_jmh60 Messages postés 9 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 8 décembre 2012
8 déc. 2012 à 11:31
Alors je réexplique :
Mon copié-collé :
Private Sub Case_a_cocher_Click()

End Sub

L'autre est "le post plus vieux" où j'ai reconnu (plus haut) avoir fait une erreur. Le voici en copié-collé :

Private Sub Case_a_cocher_Click()

' Groupe : "OptionA" devra être visible si la case est cochée.

OptionA1.Visible = Case_a_cocher
OptionA2.Visible = Case_a_cocher

' Groupe : "OptionB" devra être visible si la case n'est pas cochée.

OptionB1.Visible = Not Case_a_cocher
OptionB2.Visible = Not Case_a_cocher

End Sub
0
cs_jmh60 Messages postés 9 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 8 décembre 2012
8 déc. 2012 à 11:49
Bon, je me suis mal expliqué.
À propos de mon post "vendredi 7 décembre 2012 à 15:28:34"
Voici le copié-colé dont je parle :

Private Sub Case_a_cocher_Click()

End Sub

J'ai recinnu dans ce post avoir fait une erreur dans un post plus vieux. Voici un vrai copié-collé de cette erreur dont je me suis excusé dans le post "vendredi 7 décembre 2012 à 15:28:34" :

Private Sub Case_a_cocher_Click()
' Groupe : "OptionA" visible si case cochée.
OptionA1.Visible = Case_a_cocher
OptionA2.Visible = Case_a_cocher
' Groupe : "OptionB" visible si case NON cochée.
OptionB1.Visible = Not Case_a_cocher
OptionB2.Visible = Not Case_a_cocher
End Sub
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 déc. 2012 à 11:51
On ne va pas recommencer les "égarements", hein ...
Ton :
Voici mon code :
Private Sub Case_a cocher
_Click()
était bel et bien présenté également dans ton code supposé copié/collé ! (ton message du vendredi 7 décembre 2012 à 11:03:25

Réponds s'il te plait aux questions (toutes) que je t'ai posées dans mon dernier message !
Complète ici :
Réponse A - 1) ===>> ......
Réponse A - 2) ===>> ......
Réponse B - 1) ===>> ......
Réponse B - 2) ===>> ......

Et ne réponds qu'à cela !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_jmh60 Messages postés 9 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 8 décembre 2012
8 déc. 2012 à 12:01
A/ détermination des types de contrôles utilisés
1) OptionButton1
2) CheckBox1

B/ détermination de la manière de groupage des optionbuttons :
Méthode de groupage :
- En "mode création" jai sélectionné 2 boution à grouper en cliquantt et en tenant "Maj" appuyée, puis "click droit" il me propose "Groupe. Je groupe. Ensuite dans la liste des propriétés de chacin des 2 boutons je change le "GroupName" par défaut qui était "Feuil1" par "OptionA"
- Pareil pour les 2 autres boutons avec le GroupName = "OptionB"

Mais avant ceci j'avais renomé la case à cocher et les 4 boutons d'options.
0
cs_jmh60 Messages postés 9 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 8 décembre 2012
8 déc. 2012 à 13:24
Bonjour,
Le problème est résolu.
Les noms de mes 2 groupes étaint OptionA et OptionB
Ça ne devait pas plaire au VBA
Je les ai remplacé par GroupeA et GroupeB et tout fonctionne.
Merci à tous
Jean-Marc
0
Rejoignez-nous