Gestion des cases d'options

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_à_cocher then

Groupe_A est visible

Groupe_B est masqué

else

Groupe_A est masqué

Groupe_B est visible

en dif

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

Jean-Marc

Bonjour,

Private Sub CheckBox1_Click()
    OptionButton1.Visible = CheckBox1
    OptionButton2.Visible = CheckBox1
    OptionButton3.Visible = Not CheckBox1
    OptionButton4.Visible = Not CheckBox1
End Sub

eric

38classeur1.zip (12.10 Ko)

Bojour,

Merci pour votre réponse rapide.

J'avais déjà essayé ça, mais j'obtiens le message :

Erreur d'exécution '1004'

Impossible de définir la propriété Visible de la classe OLEObject

Mon code (en reprenant le nom de mes objets ci-dessus) :

private sub Case_à_cocher_Click()
   if Case_à_cocher then
      Option_A1.Visible = true          
      Option_A2.Visible = true          
      Option_B1.Visible = false          
      Option_B2.Visible = false
   else      
      Option_A1.Visible = false          
      Option_A2.Visible = false          
      Option_B1.Visible = true          
      Option_B2.Visible = true
   end if

Ce qui revient au même mais me donne toujours le même code d'erreur

J'ai aussi essayé avec Case_à_cocher() au lieu de Case_à_cocher tout seul

Il y a un problème peut-être dans un truc à déclarer ? Les noms des groupes ?

Jean-Marc

Bonjour,

Serait-il possible que tu joignes le fichier (en enlevant les données perso), histoire de ne pas tatonner des heures pour trouver de quoi cela pourrait venir

Cela sera plus évident pour tout le monde.

Bonjour,

Il est énorme, je vais essayer d'isoler quelque chose de court et de cohérent. Mais ça me prendra un peu de temps.

J'ai découvert quelque chose :

Si je dégrouppe mes 4 boutons d'option et leur met à tous dans la propriété : NameGroupe le nom de la feuiile excel où ils se trouvent, la propriété .Visible fonctionne, mais j'ai besoin d'avoir mes boutons en 2 groupe de 2 et dès que j'ajoute des noms de groupe ça plante.

Re,

est-ce que mon fichier exemple que je t'ai joint plante chez toi ?

Si non, prend modèle dessus.

eric

Bonjour,

J'ai testé ta procédure qui fonctionne parfaitement à condition que les boutons NE FASSENT PAS partie d'un groupe.

Mon programme ci-joint a été testé et fonctionne parfaitement dans toutes les configurations si j'efface les 2 procédures tout en bas du module principal (Feuil1) mais alors les groupes d'options que je veux rendre invisibles restent toujours affichées.

Le seul rôle de ces 2 procédures est de rendre invisible le groupe d'options correspondantes si une des 2 cases [N] ou [K] est décochée.

Ces 2 procédure fonctionnent si je retire les "groupeName" de tous mes boutons d'option, mais alors là je perd tous l'intérêt des boutons d'options.

J'ai essayé de te joindre le programme complet, mais ça ne passe pas. Trop gros (1 Mo). Et je n'arrive pas à le réduire assez pour passer en dessous de la limite de 300 ko exigée pas ce site.

Si tu veux, je peux te le passer d'une autre façon (par mail par exemple)

Merci pour ton aide

Jean-Marc

Bonsoir

Juste 2 groupes de boutons d'option plus 1 case à cocher ainsi que le code = 1 Mo

T'écris en gros caractères ?

Ton fichier en entier n'est pas intéressant, c'est juste la feuille avec les boutons et la case à cocher plus le code associé (je me répète un peu là)

Re,

J'ai testé ta procédure qui fonctionne parfaitement à condition que les boutons NE FASSENT PAS partie d'un groupe.

Ou as-tu vu ça ? Si tu regardes bien les 4 optionbuttons sont dans 2 groupes bien indépendants.

Fais un effort pour regarder les réponses et les tester correctement lorsque tu poses une question stp.

eric

Évidament que j'ai bien regardé les réponses et que j'ai testé correctement.

J'ai ré-écrit un petit programme avec juste la partie qui beugue.

Je l'ai mis en pièce jointe

Et j'ai exactement la même erreur.

Si je retire les noms de groupe, ça fonctionne mais ça ne sert à rien car je peux cocher les 2 boutons d'un même groupe

Si je mets les 4 boutons en un seul groupe "Feuil1" ça fonctionne mais ça ne sert à rien parce que je ne peux cocher qu'un bouton sur les 4.

Il y a un problème dès qu'il y a 2 groupes différents

48essai-1.zip (15.64 Ko)

Bonjour

En mode création

Clic sur groupe

Dans le menu Groupe---> Dissocier

Pareil pour l'autre

Ensuite cela fonctionne

Cela ne sert à rien de les grouper, c'est seulement la propriété GroupName qui les lie

Tu pourrais avoir un bouton dans la cellule A1 et l'autre dans la cellule IV65536 cela ne gênerait pas

Salut le forum

Et comme ceci

Private Sub Case_a_cocher_Click()
    With Shapes("Group 12")
        .Visible = Case_a_cocher
    End With
    With Shapes("Group 13")
        .Visible = Not Case_a_cocher
    End With
End Sub

Mytå

Bonjour,

Certes myta.

Mais n'est-ce pas s’embêter un peu alors que le regroupement ne sert à rien ici (seulement 2 objets regroupés) ?

D'autant plus que ça bug un peu : le dernier sélectionné reste affiché même si non visible.

Les dissocier et ça marche très bien.

eric

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

Bonjour,

Évidament que j'ai bien regardé les réponses et que j'ai testé correctement.

Non !

Reprend mon fichier et tu verras que les 2 groupes A et B de 2 options chacun sont bien indépendants.

Tu n'as pas testé correctement, ou alors dis moi en quoi il ne répond pas à ta demande (peut-être que je l'ai mal comprise bien que ça me paraisse clair)

Tu t'obstines à vouloir les grouper 'physiquement' par le clic-droit 'grouper/dégrouper/dissocier' ce qui n'a rien à voir et te cause des erreurs de fonctionnement.

Le seul groupement qui compte pour leur fonctionnement est celui fait par la propriété GroupName des option buttons.

eric

Merci, je note pour la prochaine fois, mais là, depuis que j'ai modifié les noms des groupes, tout fonctionne, même s'ils sont regroupés.

Simplement que le nom que j'avais choisi devait être ambigu avec un truc quej'ignorerai toujours

Merci encore

Bonjour,

A tout hasard j'avais testé avec tes noms de groupe et pas de problème.

Et si tu changes une option puis que tu changes l'état de la case à cocher, la dernière option modifiée ne reste pas visible ?

Sur mon 2003 si, une fois dissociées ça remarche correctement...

eric

J'ai un peu peur de casser un programme qui marche, mais avec une copie j'ai essayé de dissocier les cases.

Le fonctionnement visible/invisible est correct, mais je ne peux plus activer un bouton de chaque groupe.

Nonmalement je veux pouvoir activer un bouton parmi le 2 du groupeA et un bouton parmi le 2 du groupeB, mais une fois dégroupé, je n'ai droit qu'à un bouton sur les 4. C'est un mystère.

Bizarre oui. D'autant plus que je n'ai pas ce problème sur mon fichier exemple.

Des classeurs boiteux à force de manip ça arrive aussi.

eric

Je vais chercher encore, faire des manips, changer les noms, etc...

Si je trouve une piste je reviens en parler ici

Rechercher des sujets similaires à "gestion cases options"