masquer un objet dans excel par VBA

Blafi

XLDnaute Occasionnel
Bonjour à tous les forumeurs...,

Je cherche à masquer ou à montrer un objet (groupement de rectangles et de boutons) positionné dans une feuille excel et ceci grace à une macro.
Ma manip consisterait à le seul à pouvoir afficher l'objet afin d'utiliser les commandes contenues dans cet objet (ce sont des boutons déclenchant des macros).
Quelqu'un peut-il me donner une solution ?

Merci d'avance aux champions d'excel et VBA...
 

SHINTRA

XLDnaute Occasionnel
hello Blafi


Pour masquer un element je ne connait pas la commande cependant
voila un peu de code qui permet de faire passer ton objet en arriere plan

c bien utile pour afficher ou masquer une info.

Code:
ActiveSheet.Shapes('Rectangle 51').Select
    Selection.ShapeRange.ZOrder msoSendToBack
et pour mafficher

Code:
    ActiveSheet.Shapes('Rectangle 51').Select
    Selection.ShapeRange.ZOrder msoBringToFront

@+

Shintra
 
B

blafi

Guest
Merci de la réponse, mais entre temps j'ai trouvé le code qu'il faut. Ca ressemble à ce que tu a mis mais en plus complet:

sub MontrerMasquer()
If ActiveSheet.Shapes('Rectangle 51').visible=true then
ActiveSheet.Shapes('Rectangle 51').visible=false
else ActiveSheet.Shapes('Rectangle 51').visible=true
end if
end sub

Avec cette macro, je peux masquer ou montrer l'objet... et ça marche au poil pour ceux que ça intéresse..

Par contre, je n'ai pas trouvé le moyen de changer le nom de l'objet qui est donné par excel (rectangle 1 ici). Si quelqu'un peut me dire comment faire...

A bientôt...
A bient
 

Bricofire

XLDnaute Impliqué
Bonsoir Blafi, Shintra :)

Blafi , je penses que ce dont tu parles, c'est de sa propriété Name, une fois créé, tu peux utiliser ses propriétés comme avec d'autres objets ?

Vois ceci :



Option Explicit

Sub Macro1()

ActiveSheet.Shapes.AddShape(msoShapeRectangle, 201#, 149.25, 126.75, 73.5). _
Select

Selection.Name = 'Abracadabra'
Selection.Caption = 'Xld, c'est le plus Beau !'
MsgBox 'On Continue ?'
ActiveSheet.Shapes('Abracadabra').Visible = False

' Ps : à la place de la chaîne abracadabra, tu peux _
mettre une variable alimentée par une valeur _
de case ou de boîte de saisie...

End Sub


Bonne nuit,

Bfr

 
B

blafi

Guest
Merci Bricofire pour ton aide...
J'ai aussi trouvé une autre méthode en sélectionnant l'objet dans ma feuille excel et en lui tapant un nom à la place de celui mis d'office dans la zone nom audessus de A1.... et ça marche avec ce nouveau nom dans le code VBA..
A bientôt.. :)
 

Discussions similaires

Statistiques des forums

Discussions
312 837
Messages
2 092 658
Membres
105 482
dernier inscrit
Eric.FKF