Case d'option à comportement incompréhensible

Bonsoir !

Je crée un XLTM qui est une check list. L'utilisateur est censé cocher ce qu'il a fait pour voir si toutes les actions de sa procédure ont été exécutées.

J'ai donc utilisé des contrôles ActiveX "case d'option" (optionbutton) Oui/non ou Option 1, option 2, option 3.

Pour tout dire, c'est la première fois que j'utilise cette fonction.

J'ai donné un nom différent à chaque case d'option (ex: StatutA, StatutB, StatutS)

J'ai donné un nom identique à mon groupe (ex: Statut dans la propriété "GroupName" des 3 cases d'option)

Dans le formulaire, s'il s'agit d'un nouveau client, (réponse Oui) une série de questions doivent apparaître et elles doivent être masquées si ce n'est pas le cas (réponse Non).

J'utilise donc le code suivant :

Private Sub OptionButton1_Click()
    With ActiveSheet
        .Shapes("OptionButton3").Visible = True
        .Shapes("OptionButton4").Visible = True
        .Shapes("OptionButton5").Visible = True
        .Shapes("OptionButton6").Visible = True
    End With
    Rows("9:11").EntireRow.Hidden = False

End Sub

Private Sub OptionButton2_Click()
    With ActiveSheet
        .Shapes("OptionButton3").Visible = False
        .Shapes("OptionButton4").Visible = False
        .Shapes("OptionButton5").Visible = False
        .Shapes("OptionButton6").Visible = False
    End With
    Rows("9:11").EntireRow.Hidden = True

End Sub

Je me trouve confronté à une curiosité :

J'ai cliqué sur oui et non (OptionButton1 et 2) pour tester mon code. Apparemment tout fonctionne, les lignes et les cases d'option apparaissent ou disparaissent selon le cas.

C'est ensuite que le problème se pose : les cases d'option 3 et 4 fonctionnent, mais les cases d'option 5 et 6 ne fonctionnent pas (aucun point noir ne s'affiche) mais en plus, elles modifient leur propriété "Top" qui passe de 136,5 à 165.

Le plus curieux est que les cases sont toujours affichées en 136,5, mais qu'elle s'affiche en plus à l'endroit du Top dans les propriétés, c'est-à-dire le 165. Lorsque je relâche le clic gauche, la case d'option en 165 disparaît et celle en 136,5 reste affichée à cette place !!! (mais sans point noir).

Malgré qu'elle soit à 136,5 du top, la propriété affiche toujours 165...

Si quelqu'un a une idée de ce qui coince, ça m'arrangerait.

Bonne soirée à vous.

Henri

Bonjour,

En mode Création, sélectionnez le groupe des options 5 & 6 et déplacez le vers le bas

Redimensionnez le groupe afin d'éviter qu'il se croise avec le groupe du dessus

Bonjour,

J'ai testé, ça fonctionne sur l'exemple. Mille mercis, brillante idée.

Je teste sur l'original (bien plus complexe en matière de présentation) et je vous reviens pour vous donner des nouvelles.

Bonne journée !

Henri

Bon...

Ce n'est pas gagné.

Sur la feuille originale, j'ai écarté tous les boutons, c'est très moche mais plus rien ne se touche.

J'ai également modifié la valeur top de tous pour qu'elle corresponde à l'emplacement du bouton, mais malheureusement, le phénomène se produit encore.

Je joins le fichier original pour information. C'est un fichier en néerlandais mais dans ce cas-ci, le sens des mots n'a pas beaucoup d'importance. Pour info, "Ja" veut dire "Oui" et "Neen" veut dire "Non".

C'est le "Ja" qui se trouve en ligne 13, en regard de "Nieuwe Klant of nieuwe contractgroep ?" (nouveau client ou nouveau groupe de contacts) qui actionne la procédure.

Pouvez-vous jeter un coup d’œil ? Encore merci pour le mal que vous vous donnez.

Merci d'avance.

Henri

Re,

A voir comme cela, difficile d'aider, car tous les boutons sont regroupés en ligne 56

Je te propose la solution suivante

Créer une zone de groupe sur la partie qui s'affiche et se masque.

A l'intérieur, positionner les boutons

Il suffira juste dans la macro des deux boutons en ligne 13 de rendre visible ou invisible la zone de groupe

Tout d'abord, désolé pour le fichier, je viens de m'apercevoir qu'effectivement une fois fermé et rouvert les boutons ont pris la position enregistrée dans les propriétés et se retrouvent tous en ligne 56.

Ils étaient à leur place au moment de l'envoi, je peux te l'assurer.

Excuse-moi, je ne suis pas expert en VBA.

Ce que je connais des groupes dans la case d'option est le GroupName qui m'a permis d'associer chaque oui/non pour qu'il fonctionne de façon autonome par rapport aux autres boutons d'option.

Y a-t-il une autre manière de les grouper ?

Re

Depuis le menu DEVELOPPEUR / INSERER ---> zone de groupe (le rectangle avec XYZ)

Une Zone de groupe comme sur ma PJ (137) pour l'ensemble des autres zones de groupe pour les boutons

J'ai constitué une zone de groupe que j'ai appelé "questions".

Après quelques tâtonnements, j'ai inséré l'instruction "ActiveSheet.GroupShapes("Questions").Visible = False (ou True)" dans la macro censée masquer ou afficher mes zones mais il me donne l'erreur : Erreur d'exécution 438 - propriété ou méthode non gérée par cet objet.

Je suppose que ce n'est pas la bonne instruction, vous pouvez me redonner un petit coup de pouce ?

Encore merci.

Re M12,

J'ai testé le fichier que tu m'as envoyé, tout y fonctionne très bien, sois en remercié.

J'ai remarqué que le bouton "Ja" qui déclenche l'affichage ou le masquage des autres questions contient le code :

.Shapes.Range(Array("ZoneQuestion")).Visible = True

et que la zone de groupe 137 contient une macro4 avec le code :

ActiveSheet.Shapes.Range(Array("Group Box 137")).Select
ActiveSheet.GroupBoxes.Add(79.5, 260.25, 113.25, 96).Select

J'ai modifié le nom de la zone de groupe et je l'ai placé dans mon fichier Excel:

    With ActiveSheet
         .Shapes.Range(Array("Questions")).Visible = True
    End With

J'ai également ajouté le contenu de la macro4 (en me disant que ça n'avait pas l'air d'être ce qu'il fallait faire) au groupe qui englobe toutes les questions :

Sub Zonedegroupe15_Cliquer()
    ActiveSheet.Shapes.Range(Array("Questions")).Select
    ActiveSheet.GroupBoxes.Add(79.5, 260.25, 113.25, 96).Select
End Sub

Tu ne seras probablement pas surpris si je te dis que ça bugue.

Il m'affiche le message :

"Erreur d'exécution 1004

L'élément portant ce nom est introuvable."

et il s'arrête à la ligne : ".Shapes.Range(Array("Questions")).Visible = True" du code.

Qu'est-ce qui manque à quoi ?

Bonjour,

Mon rapport est urgent et mon sauveur ne réapparaît malheureusement plus.

Quelqu'un pourrait m'aider svp ?

Merci d'avance.

Henri

Re M12,

J'ai testé le fichier que tu m'as envoyé, tout y fonctionne très bien, sois en remercié.

J'ai remarqué que le bouton "Ja" qui déclenche l'affichage ou le masquage des autres questions contient le code :

.Shapes.Range(Array("ZoneQuestion")).Visible = True

et que la zone de groupe 137 contient une macro4 avec le code :

ActiveSheet.Shapes.Range(Array("Group Box 137")).Select
ActiveSheet.GroupBoxes.Add(79.5, 260.25, 113.25, 96).Select

J'ai modifié le nom de la zone de groupe et je l'ai placé dans mon fichier Excel:

    With ActiveSheet
         .Shapes.Range(Array("Questions")).Visible = True
    End With

J'ai également ajouté le contenu de la macro4 (en me disant que ça n'avait pas l'air d'être ce qu'il fallait faire) au groupe qui englobe toutes les questions :

Sub Zonedegroupe15_Cliquer()
    ActiveSheet.Shapes.Range(Array("Questions")).Select
    ActiveSheet.GroupBoxes.Add(79.5, 260.25, 113.25, 96).Select
End Sub

Tu ne seras probablement pas surpris si je te dis que ça bugue.

Il m'affiche le message :

"Erreur d'exécution 1004

L'élément portant ce nom est introuvable."

et il s'arrête à la ligne : ".Shapes.Range(Array("Questions")).Visible = True" du code.

Qu'est-ce qui manque à quoi ?

Rechercher des sujets similaires à "case option comportement incomprehensible"