Forme auto en vba (excel)

Résolu
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
Configuration: Windows XP
Internet Explorer 7.0

1 réponse

  1. Contributeur
    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