Faire apparaitre des objets [VBA]

Escartefigue

XLDnaute Nouveau
Bonjour le forum,

Je poste ce fichier sur lequel il y a un objet appelé "BOUTON1" sur la feuille 1 et deus objets (OBJET1 et OBJET2) sur les feuilles 1 et 2.
Au départ je voulais faire apparaitre OBJET1 et OBJET2 si la cellule B1 de la feuille 3 (cette feuille sera masquée) avait une certaine "valeur" donc j'ai créé une macro copier/coller (A1>B1) que j'ai mis sur le BOUTON1, mais je n'arrive pas à créer la macro qui fait apparaitre les objets.

Si une âme charitable pouvais me donner un coup de main ça serait sympa.

@+
 

Pièces jointes

  • Classeur1.xls
    46.5 KB · Affichages: 51
  • Classeur1.xls
    46.5 KB · Affichages: 61
  • Classeur1.xls
    46.5 KB · Affichages: 60

john

XLDnaute Impliqué
Re : Faire apparaitre des objets [VBA]

Bonjour,

Voilà ton fichier modifié :)

J'ai fais en sorte que si B1 de la feuille 3 = 0 alors on affiche les boutons et si = 1 on cache. Le tout via le bouton 1.
Je ne l'ai pas fais si on change directement sur la feuille 3 vu qu'apparemment celle-ci sera cachée par la suite.

Bonne journée.

John
 

Pièces jointes

  • cache_boutons.xlsm
    20.2 KB · Affichages: 46
  • cache_boutons.xlsm
    20.2 KB · Affichages: 55
  • cache_boutons.xlsm
    20.2 KB · Affichages: 52
Dernière édition:

Escartefigue

XLDnaute Nouveau
Re : Faire apparaitre des objets [VBA]

Bonjour John,

Pas mal la macro.
Cependant les objets sur la feuille 2 ne disparaissent pas.
De plus je ne comprends pas comment cette macro fait disparaitre uniquement ces deux objets et pas tous ceux qui ce trouvent sur la feuille...:confused:

Pourrais tu me faire une petite explication s'il te plait.

@+
 

john

XLDnaute Impliqué
Re : Faire apparaitre des objets [VBA]

Re,

Sorry, j'ai oublié de faire pour la feuille 2 oupssss. Ci-joint le fichier modifié.

Le fonctionnement est très simple, je fais une boucle sur les 2 feuilles, sur celle-ci, je boucle sur les "shapes" qui se trouve sur la feuille et je teste le texte qui est écrit dedans. Si c'est "bouton 1", je ne fais rien sinon je masque ou j'affiche.

Bonne fin de journée.

John
 

Pièces jointes

  • cache_boutons.xlsm
    20.7 KB · Affichages: 41
  • cache_boutons.xlsm
    20.7 KB · Affichages: 46
  • cache_boutons.xlsm
    20.7 KB · Affichages: 39

Escartefigue

XLDnaute Nouveau
Re : Faire apparaitre des objets [VBA]

Re,

Sorry, j'ai oublié de faire pour la feuille 2 oupssss. Ci-joint le fichier modifié.

Le fonctionnement est très simple, je fais une boucle sur les 2 feuilles, sur celle-ci, je boucle sur les "shapes" qui se trouve sur la feuille et je teste le texte qui est écrit dedans. Si c'est "bouton 1", je ne fais rien sinon je masque ou j'affiche.

Bonne fin de journée.

John

OK, alors c'est à mon tour de m'excuser car j'ai peut-être un peu trop simplifié mon exemple.
En fait sur les feuilles j'ai plusieurs objets de ce type, mais je veux avoir la possibilité de faire disparaitre/apparaitre seulement ces deux-là.
Peut-on plutôt prendre le problème à l'envers et dire à la macro de faire une action sur les objets contenant un mot? Avant de faire un autre impair je tiens à signaler que les deux objets ont normalement des textes très différents.

@+
 

john

XLDnaute Impliqué
Re : Faire apparaitre des objets [VBA]

Re,

Oui tu peux le faire, il suffit d'entrer le texte de tes "shapes" dans la condition et de mettre = ou <> tout simplement.

Si tu veux, envois-moi un fichier avec les exemples de shapes que tu as avec les bons textes et la/les conditions pour que ceux-ci disparaissent, je te ferai un exemple que tu n'auras plus qu'à adapter à tes besoins par la suite.

John
 

Escartefigue

XLDnaute Nouveau
Re : Faire apparaitre des objets [VBA]

Re,

Oui tu peux le faire, il suffit d'entrer le texte de tes "shapes" dans la condition et de mettre = ou <> tout simplement.

Si tu veux, envois-moi un fichier avec les exemples de shapes que tu as avec les bons textes et la/les conditions pour que ceux-ci disparaissent, je te ferai un exemple que tu n'auras plus qu'à adapter à tes besoins par la suite.

John
Et voilà
Fais en disparaitre 2, ceux que tu veux.
Merci c'est sympa

@+
 

Pièces jointes

  • 318359d1413202881-faire-apparaitre-des-objets-vba-cache_boutons.xlsm
    16.8 KB · Affichages: 43
Dernière édition:

Escartefigue

XLDnaute Nouveau
Re : Faire apparaitre des objets [VBA]

Voilà :)

Bonne fin de journée.

John
Bonjour John,

Merci pour ton exemple je pense avoir compris une grosse partie.
J'ai tout de même une question et un problème... (je sais je ne suis pas doué!
J'ai renommé mes onglets, puis je garder For x = 1 To 2 ou dois je mettre le nom du premier et du dernier onglet?
La macro me dit que j'ai une erreur sur txt = n.TextFrame.Characters.Text, mais je ne comprends pas pourquoi?

Merci de ton aide
@+
 

Pièces jointes

  • Test cache bouton.xls
    145 KB · Affichages: 25

john

XLDnaute Impliqué
Re : Faire apparaitre des objets [VBA]

Bonjour,

Tu as une erreur car le bouton "START" est une image apparemment et non une forme avec du texte, donc quand on veux lire la propriété texte, le vba n'y arrive pas car la propriété texte n'existe pas sur une image, d'où l'erreur. J'ai mis un "on error resume next", donc en cas d'erreur continuer suivant...

Sinon le reste est bon, sauf que j'avais transformé en LCASE (minuscule) le texte des bouton pour la comparaison, mais pas grave, je l'ai fait en UCASE (majuscule) vu que tu as tout écris en majuscule dans les "SI". Tu peux garder sans soucis le for x... car je parcours les feuilles via sheets(x), mais la dernière feuille, celle où il n'y a pas de bouton, ne doit pas être devant ou intercalée dans les autres, elle doit bien rester la dernière... Sinon il faudra faire un for x to sheets.count et mettre une condition qui dit que si x = la feuille en question, on ne fait rien.

Ci-joint le fichier...

Bonne journée.

John

Ps: en cas d'autre question, ne je serai pas là aujourd'hui car je dois partir... j'y répondrai dès mon retour ou demain.
 

Pièces jointes

  • cache-bouton3.xlsm
    87.9 KB · Affichages: 45
Dernière édition:

Escartefigue

XLDnaute Nouveau
Re : Faire apparaitre des objets [VBA]

Bonjour,

Tu as une erreur car le bouton "START" est une image apparemment et non une forme avec du texte, donc quand on veux lire la propriété texte, le vba n'y arrive pas car la propriété texte n'existe pas sur une image, d'où l'erreur. J'ai mis un "on error resume next", donc en cas d'erreur continuer suivant...

Sinon le reste est bon, sauf que j'avais transformé en LCASE (minuscule) le texte des bouton pour la comparaison, mais pas grave, je l'ai fait en UCASE (majuscule) vu que tu as tout écris en majuscule dans les "SI". Tu peux garder sans soucis le for x... car je parcours les feuilles via sheets(x), mais la dernière feuille, celle où il n'y a pas de bouton, ne doit pas être devant ou intercalée dans les autres, elle doit bien rester la dernière... Sinon il faudra faire un for x to sheets.count et mettre une condition qui dit que si x = la feuille en question, on ne fait rien.

Ci-joint le fichier...

Bonne journée.

John

Ps: en cas d'autre question, ne je serai pas là aujourd'hui car je dois partir... j'y répondrai dès mon retour ou demain.
C'est parfait, ça marche nickel!!!
Un grand merci à toi!

@+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom