Forme auto en vba (excel)

Résolu
daiman Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Contributeur Dernière intervention   7 275
 
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