Création et suppression Shapes

Le
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?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4801921
Bonjour,


1/

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

2/

For Each i In ActiveSheet.Shapes
If i.Type 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?


JLH974
Le #4801901
10^3 Mercis à JB

JLH974
Publicité
Poster une réponse
Anonyme