Forme auto en vba (excel)

Résolu
daiman Messages postés 41 Statut Membre -  
eriiic Messages postés 24581 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
Configuration: Windows XP
Internet Explorer 7.0

1 réponse

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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