Bonjour à tous,
J'ai une macro qui est supposée me dessiner des objets selon les valeurs entrées dans ma feuille. A chaque fois que la feuille se modifie, ces formes sont susceptibles de changer. Il faut donc préalablement effacer toutes les formes, avant de dessiner les nouvelles. Le problème, c'est que je veux quand même en garder une, mais je ne sais pas comment faire... Voilà le code :
Je suis obligé de lui dire "Supprime toutes les formes sauf SchemaBateau" parce que le nombre de formes à dessiner dépend des paramètres de la feuille. les 3 possibilités pour le If que j'ai mises ci-dessus ne marchent pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Dim s As Shape For Each s In Shapes If s Is Not Shapes("SchemaBateau") Then 'ou If Not s = Shapes("SchemaBateau") Then 'ou If s <> Shapes("SchemaBateau") Then s.Delete End If Next Dim index As Integer For index = 1 To N Shapes.AddShape(msoShapeSmileyFace, _ Shapes("SchemaBateau").Left + (Lpanneaux + 2 * R * (index - 1)) / Lht * Shapes("SchemaBateau").Width, _ Shapes("SchemaBateau").Top + Shapes("SchemaBateau").Height - (Tirant - R) * Shapes("SchemaBateau").Width / Lht, _ 2 * R * Shapes("SchemaBateau").Width / Lht, _ 2 * R * Shapes("SchemaBateau").Width / Lht).Fill.ForeColor.RGB = vbYellow Next
Question donc : comment effacer toutes les formes, sauf celle appelée "SchemaBateau" ? Sachant que ma démarche n'est pas forcément la bonne...
Merci à tous !
Partager