XL 2010 Placer une image au premier plan

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

Le problème est simple.
Sur ma feuille il y a un CommandButton qui s'intitule "CommandButton2".
Lors de l'exécution d'une macro, apparaît une image qui, elle, s'intitule "Image_Atomic".
Le problème (esthétique), c'est que le CommandButton s'impose au premier plan, alors que je voudrais qu'il soit derrière l'image quand celle-ci apparaît.
J'ai facilement résolu le problème en écrivant ceci :
VB:
Worksheets("Hoja1").CommandButton2.Visible = False   
Sheets("Hoja1").Shapes("Image_Atomic").Visible = True
On m'a récemment fait connaître "ZOrder". Par curiosité, j'ai tenté ceci :
VB:
Sheets("Hoja1").Shapes("Image_Atomic").Visible = True
Sheets("Hoja1").Shapes("CommandButton2").ZOrder msoSendToBack
Ça ne marche pas, le CommandButton est toujours au premier plan.
Peut-on utiliser "ZOrder" pour régler ce problème ?
 

job75

XLDnaute Barbatruc
Bonjour Magic_Doctor, patricktoulon,

Pas de problème avec un bouton de formulaire et une forme :
VB:
Sub Premier_Plan()
Shapes(IIf(Shapes("Bouton2").ZOrderPosition = 2, "Image_Atomic", "Bouton2")).ZOrder msoBringToFront
End Sub
A+
 

Pièces jointes

  • ZOrder(1).xlsm
    18.2 KB · Affichages: 24

patricktoulon

XLDnaute Barbatruc
et oui tu a 3 shapes il faut remonter jusqu'a la première quel que type que ce soit
cela dit pourquoi ne pas la rendre visible ou invisible dans le même event

Sub Premier_Plan()
Shapes("Bouton2").Visible = Not Shapes("Bouton2").Visible
End Sub

tu clique sur l'image bleu il disparaît tu re clique il revient
c'est simple non?
 

Magic_Doctor

XLDnaute Barbatruc
Re,

Je vais tenter de bien expliquer pourquoi je voulais utiliser ZOrder.
C'est toujours pour cette histoire de mot de passe (pour le fun).
J'ouvre le fichier :
- on doit rentrer un mot de passe et on a droit qu'à 3 essais
- on se plante 3 fois
- apparaît une image pendant 2''
- le fichier se ferme et basta ! (ou, comme on dit ici : "alé cagué su le malvón")

Seulement voilà, il y a un ActiveX (CommandButton) sur la feuille, et quand l'image apparaît, le bouton est au premier plan (sinon on ne le verrait pas). L'éclipser juste avant que l'image s'affiche est facile. Le seul problème, c'est que lors de la réouverture du document, il faut bien spécifier que ce CommandButton soit visible. Facile pour y parvenir. C'est alors que je me suis dit que, si en utilisant le ZOrder quand l'image apparaît, le CommandButton serait fatalement mis en arrière plan (et non pas occulté), ce qui éviterait du coup de stipuler, lors de la réouverture du document, de le faire réapparaître, puisqu'il n'aurait alors jamais été occulté.
Mais s'il n'y a pas de solution via ZOrder, ce n'est pas bien grave, puisque j'en avais déjà trouvé une qui marche, mais un peu plus lourde.
Je signale enfin que, dans la PJ de mon précédent post, le bouton tout à droite ne sert qu'à déclencher la macro. Donc, il ne rentre pas en ligne de compte.
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
Je signale enfin que, dans la PJ de mon précédent post, le bouton tout à droite ne sert qu'à déclencher la macro. Donc, il ne rentre pas en ligne de compte.
bien sur que si!!!!!!!!!!!! la bonne blague :p
apartir du moment ou tu organise le zorder d'une shapes excel réorganise les autres
donc quand tu organise le zorder de ton bouton la grande image et la bleue sont organisée a leur tour par excel et quand tu re clique!!!!!!! forcement elles ne sont plus dans le même ordre de zorder
c'est pas difficile a comprendre non?
excel n'en a rien a foutre qu'elle soit là juste pour déclencher la macro elle est là, il la compte dans le shaperange c'est tout
et cet ordre est fait selon l'ordre d'une boucle sur shapes
c'est a dire
les formes auto
les activx
les pictures
les controls formulaire

dans ton cas tu a un bouton, une picture, une shape
si tu met le bouton (control de formulaire) en dessous excel va mettre
la shapes puis la picture
si bien que quand tu veux revenir ben c'est la shapes bleue et non la picture qui est la suivante dans l'ordre "zorder"
donc tu te retrouve avec la shapes en dessous le bouton et la picture c'est ballo!!!
 
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Re,

Bon, j'ai un peu tout essayé avec l'exemple du post #6 : cliquer sur "GO" et faire en sorte que "CommandButton1" se foute derrière l'image et qu'on ne le voit plus. Ma dernière tentative est celle-ci :
VB:
    With Shapes("Image_Atomic")
    .Visible = True
    .ZOrder msoBringToFront
    End With
... Rien ! "CommandButton1" est toujours là...
 

Magic_Doctor

XLDnaute Barbatruc
Re,

Je m'en doutais, mais il fallait tout simplement le dire dès le départ :

on ne peut pas avec un activX !

En une seule et unique phrase j'aurais compris. Je suis lent, mais pas à ce point !

Commentaire personnel : ils sont quand même cons de ne pas avoir prévu ZOrder pour les ActiveX...
 

Magic_Doctor

XLDnaute Barbatruc
Re,

Je m'y attendais. :cool:

Dans cette histoire (au triste final...), j'étais tombé sur un lien en anglais où quelqu'un(e) prétendait que ce n'était pas possible avec des ActiveX. Habitué des déclarations péremptoires et pessimistes, moi, boute-en-train, je décide d'aller plus loin dans mes investigations. Je fais une recherche circonspecte dans cet honorable forum et tombe sur ce fil : Ici ! Na !
Et là, je me suis dit, plein d'espoir : ¡Coño! si le mec est arrivé à ça, ¡Caramba! on devrait y arriver à contourner una connérie pareille. D'où mon entêtement justifié.
Dans mon raisonnement cartésien, en ce qui concerne le bouton formulaire, je m'en tamponnais tranquillement le coquillard, puisque à l'origine l'opération se fait automatiquement, suite à un évément géré par une macro. Donc, le considérant comme un objet superfétatoire, je ne le calculais pas, d'autant plus que sur mes feuilles je n'utilise que des ActiveX, pour des raisons esthétiques, afin de sortir de la grisaille quotidienne. Je reconnais que j'ai trop vite survolé ton post #2, emporté par mon enthousiasme juvénile. Mais c'est de ta faute, tu aurais dû le mettre en caractères gras ! :p
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
bonjour @Magic_Doctor
c'est quoi le problème si tu remplace le commandbutton1 par un bouton formulaire????
surtout que tu peux faire en sorte qu'ils aient la même apparence quasiment
si tu fait ça tu aura ce que tu veux et rien empêche que l'event(ou la macro associée au bouton pour le bouton formulaire) soit dans la feuille comme pour l'activX

tu t'attarde sur des trucs des fois toi :rolleyes:

. Mais c'est de ta faute, tu aurais dû le mettre en caractères gras !
LOL :p
 

Discussions similaires

Z
Réponses
5
Affichages
6 K
Z

Statistiques des forums

Discussions
315 093
Messages
2 116 139
Membres
112 669
dernier inscrit
Guigui2502