Afficher masquer shapes

  • Initiateur de la discussion Initiateur de la discussion fenec
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fenec

XLDnaute Impliqué
Bonjour le forum

Besoin une fois de plus de vos lumières, en cherchant un peu partout j’ai réussi à trouver un début de solution à mon problème.

Je parviens à jouer avec deux shapes mais n’y parviens plus si j’en rajoute un troisième.

Vous joint un fichier qui sera plus parlant
Si vous réactivez mon code en suspends (vert) vous verrez de suite ou je coince

Cordialement

Fenec
 

Pièces jointes

Re : Afficher masquer shapes

Bonsour®
Bonjour le forum


Je parviens à jouer avec deux shapes mais n’y parviens plus si j’en rajoute un troisième.

Vous joint un fichier qui sera plus parlant
Si vous réactivez mon code en suspends (vert) vous verrez de suite ou je coince

essaie comme ceci :
Code VBA:
Sub AfficherMasquer()
Range("O15") = (1 + CInt(Range("O15"))) Mod 3 ' <----mettre ici X le nombre de shapes différents
ActiveSheet.Shapes("Devis").Visible = Range("O15") = 0
ActiveSheet.Shapes("Bon de commande").Visible = Range("O15") = 1
ActiveSheet.Shapes("Facture").Visible = Range("O15") = 2
'----- pour ajouter d'autres shapes
'------ActiveSheet.Shapes("Texte").Visible = Range("O15") = Xn

End Sub
 
Re : Afficher masquer shapes

Re, bonsoir Modeste geedee

Merci pour ta solution c’est nickel

Une petite question si tu permets :
Ayant 3 shapes avec le même critère,

Code:
ActiveSheet.Shapes("Facture").Visible = Range("O15") = 2
 ActiveSheet.Shapes("Contrat").Visible = Range("O15") = 2
 ActiveSheet.Shapes("Solde").Visible = Range("O15") = 2

J’ai essayé de faire plus court en faisant ceci mais ca ne fonctionne pas

Code:
ActiveSheet.Shapes("Facture, Contrat, Solde").Visible = Range("O15") = 2

Et en renommant tous les shapes avec le même nom "Facture" mais sans plus de succès

A+
 
Re : Afficher masquer shapes

Bonsour®
passer de 3 lignes d'instructions à une seule ligne d'instruction, le gain n'est que visuel, en terme de CPU celui-ci devient insignifiant.
le gain n'aura été que par rapport à la proc précédente... 🙂
au mieux pour plus clarté :
Code VBA:

With ActiveSheet
Dim Etat As Boolean
Etat=(Range("O15")=2)
.Shapes("Facture").Visible=Etat
.Shapes("Contrat").Visible=Etat
.Shapes("Solde").Visible=Etat
End With
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
173
Réponses
6
Affichages
637
A
Réponses
11
Affichages
2 K
A
Retour