Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Création et suppression Shapes

2 réponses
Avatar
JLH974
Bonjour à tous
Je soumets à votre sagacité deux petits problèmes concernant les Shapes :

Je crée sur une feuille Excel avec un bouton, une série d'hexagones générés
par l'instruction :

ThisWorkbook.Sheets("Test").Shapes.AddShape(msoShapeHexagon, Abscisse,
Ordonnée, Width, Width * Sinus60).Select

En fait cette instruction crée l'hexagone mais le sélectionne aussi. J'ai
bien essayé de supprimer .Select mais cela déclenche immédiatement une
erreur.
Je voudrais éviter que le dernier hexagone créé soit sélectionné, comment
faire pour supprimer la fonction Select

Deuxième petit problème, je voudrais effacer les hexagones au moyen d'un
bouton
J'ai commencé par faire une boucle :

For n = 1 To ThisWorkbook.Sheets("Test").Shapes.Count
ThisWorkbook.Sheets("Test").Shapes(n).Delete
Next n

Sauf que je me suis aperçu que les boutons aussi étaient des Shapes et ils
étaient effacés également
Ensuite, inexplicablement, la procédure efface une partie des Shapes mais
s'arrete sur une erreur d'indice des Shapes hors range pour une valeur de n
bien inférieure pourtant au nombre total des Shapes d'origine.
Je suppose que la suppression s'effectue progressivement par petit groupe,
et qu'une fois effacés une partie des Shapes, leur nombre a diminué et que
l'indice n dépasse cette nouvelle valeur d'où l'erreur.
Je voudrais juste sélectionner l'ensemble des Shapes-Hexagones et les
supprimer sans supprimer mes deux Shapes-Boutons. Comment faire?

2 réponses

Avatar
JB
Bonjour,


1/

Sheets(1).Shapes.AddShape msoShapeHexagon, 100, 100, 100, 100

2/

For Each i In ActiveSheet.Shapes
If i.Type <> 8 And i.Type <> 12 Then
ActiveSheet.Shapes(i.Name).Delete
Next i

JB
http://boisgontierjacques.free.fr/

On 21 août, 05:42, "JLH974"
wrote:
Bonjour à tous
Je soumets à votre sagacité deux petits problèmes concernant les Sh apes :

Je crée sur une feuille Excel avec un bouton, une série d'hexagones g énérés
par l'instruction :

ThisWorkbook.Sheets("Test").Shapes.AddShape(msoShapeHexagon, Abscisse,
Ordonnée, Width, Width * Sinus60).Select

En fait cette instruction crée l'hexagone mais le sélectionne aussi. J'ai
bien essayé de supprimer .Select mais cela déclenche immédiatement une
erreur.
Je voudrais éviter que le dernier hexagone créé soit sélectionn é, comment
faire pour supprimer la fonction Select

Deuxième petit problème, je voudrais effacer les hexagones au moyen d 'un
bouton
J'ai commencé par faire une boucle :

For n = 1 To ThisWorkbook.Sheets("Test").Shapes.Count
ThisWorkbook.Sheets("Test").Shapes(n).Delete
Next n

Sauf que je me suis aperçu que les boutons aussi étaient des Shapes et ils
étaient effacés également
Ensuite, inexplicablement, la procédure efface une partie des Shapes ma is
s'arrete sur une erreur d'indice des Shapes hors range pour une valeur de n
bien inférieure pourtant au nombre total des Shapes d'origine.
Je suppose que la suppression s'effectue progressivement par petit groupe,
et qu'une fois effacés une partie des Shapes, leur nombre a diminué e t que
l'indice n dépasse cette nouvelle valeur d'où l'erreur.
Je voudrais juste sélectionner l'ensemble des Shapes-Hexagones et les
supprimer sans supprimer mes deux Shapes-Boutons. Comment faire?


Avatar
JLH974
10^3 Mercis à JB

JLH974