XL 2016 Manipuler des formes en VBA

Sylvain133

XLDnaute Nouveau
Bonjour à tous,

Comme le sujet l'indique j'aimerais manipuler des formes par une macro sur VBA. Je vous explique mon problème. J'ai 2 rectangles de même taille. J'aimerai que l'un s'affiche à partir d'une condition en le faisant passer au premier plan. Ainsi j'essaye ce bout de code qui ne fonctionne pas et me retourne le fait que ce nom d'objet est inexistant alors que mon rectangle se nomme bien ainsi ! J'ai également essayé de lui donner un nom mais rien n'y fait. Voici le code utilisé :

If i = 3 Or i = 5 Or i = 5 Then
ActiveSheet.Shapes.Range(Array("Rectangle 104")).Select
Selection.ShapeRange.ZOrder msoBringToFront
Else
ActiveSheet.Shapes.Range(Array("Rectangle 106")).Select
Selection.ShapeRange.ZOrder msoBringToFront
End If

Merci à tous pour vos réponses
 

patricktoulon

XLDnaute Barbatruc
La feuille sur laquelle j'étais n'était pas la bonne, tout mon code fonctionne correctement dès à présent...merci tout de même

si oui
shapes(1) devant
si non
shape(2) devant


peu etre traduit par
si oui
shapes(1) devant
si non
shape(1) derriere


ton code fonctionne oui mais plein d'inutilité

la première ci dessous mis en évidence en rouge
If i = 3 Or i = 5 Or i = 5 Then ???????????????????

la 2d
comme cité ci dessus tu n'a besoins d'agir que sur une et puisque que c'est 104 qui doit benificier du booleen (true) sur control de i
fait le sur 104 et c'est tout
comme dans cet exemple ou je transforme le resultat booleen de la valeur de i en (1 ou 0)
VB:
ActiveSheet.Shapes("Rectangle 104").ZOrder Abs(Abs(i = 3 Or i = 5) < 1)
et au final (je pinaille) on peut simplifier comme suit avec l'operateur and
Code:
ActiveSheet.Shapes("Rectangle 104").ZOrder Abs(i <> 3 And i <> 5)

;)
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16