Forme auto en vba (excel)

Résolu/Fermé
daiman Messages postés 41 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 17 mars 2008 - 15 nov. 2007 à 03:34
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 15 nov. 2007 à 07:37
Bonjour,
lors de la création d'un rectangle celui si porte le nom que lui atribué le programme exemple: "rectangle 6"
Pour des raisons compliqué à expliquer , je recrée à chaque ouverture du fichier ces rectangles avec une macro (auto_open).
Malheureusement le "rectangle 6" change de numéro à chaque ouverture et devient, par exemple, le "rectangle 7".
C'est là que je suis coincé car j'ai des macros qui se servent de ces numéros. Etant donnée que les rectangle ont changé de nom entre temps mes macro ne fonctionne plus. "Logique"
comment faire pour forcer un numéro de rectangle ou, encore mieu, lui donner un nom du genre "rectangle toto" à chaque ouverture et donc à chaque création?
merci d'avance
A voir également:

1 réponse

eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 257
15 nov. 2007 à 07:37
Bonjour,

Shapes étant une collection tu peux utiliser la propriété Name:

nb = ActiveSheet.Shapes.Count 'numéro du dernier shape de la feuille active
MsgBox (ActiveSheet.Shapes(nb).Name) ' son nom
ActiveSheet.Shapes(nb).Name = "Rectangle1" ' modification de son nom
MsgBox (ActiveSheet.Shapes(nb).Name) ' son nom après modif

eric
0