redimensionner une shape

Résolu
SofieV Messages postés 20 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 septembre 2004 - 19 août 2004 à 16:49
SofieV Messages postés 20 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 septembre 2004 - 30 août 2004 à 09:56
Bonjour,

j'ai un petit souci concernant la modification de shapes (ici des graphes) sous Excel...

Les graphes sont crées en automatique ...le problème est que si je veux les redimensionner automatiquement ma macro ne fonctionne que si je connais le nom de la shape??? Et comme je ne sais pas où trouver son nom(apparemment donné de manière automatique) ni comment la modifier je bloque pour le redimensionnement....

Est-ce qu'il est possible de renommer cette shape avec une variable utilisateur? Sinon où est-ce que je peux récupérer son nom...

4 réponses

Zigarn Messages postés 106 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 janvier 2005
30 août 2004 à 09:46
Il doit en tout cas être au moins le graphique d'indice 1 et du coup avec ActiveSheet.Shapes(1) tu devrais l'avoir puis ensuite avec .Name le renommer comme tu veux (à essayer).

-------------------------------------------------
Débutant ... mais pas pour longtemps !
3
Zigarn Messages postés 106 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 janvier 2005
19 août 2004 à 17:38
Le mieux dans ce cas est de regarder le code généré par l'enregistrement d'une macro !
Dans mon cas, cela donne :
    ActiveSheet.Shapes("Graphique 1").ScaleWidth 1.16, msoFalse, msoScaleFromTopLeft
    ActiveSheet.Shapes("Graphique 1").ScaleHeight 1.33, msoFalse,  msoScaleFromBottomRight
ActiveSheet.Shapes("Graphique 2").ScaleWidth 1.29, msoFalse, msoScaleFromTopLeft
    ActiveSheet.Shapes("Graphique 2").ScaleHeight 1.26, msoFalse, msoScaleFromBottomRight

Donc il semblerais qu'il nomme les graphiques "Graphique X" dans leur ordre de création. Sinon, la propriété Name de tes objet Shapes peut être modifiée :
ActiveSheet.Shapes("Graphique 2").Name = "Mon Graphe à moi"
ActiveSheet.Shapes("Mon Graphe à moi").ScaleHeight 1.26, msoFalse, msoScaleFromBottomRight

Suffit d'essayer pour trouver.
-------------------------------------------------
Débutant ... mais pas pour longtemps !
0
SofieV Messages postés 20 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 septembre 2004 3
30 août 2004 à 09:42
ça serait trop facile si ça marchait comme ça....même en redémarrant mon ordi je n'ai jamais "graphique 1" pour le premier graphique crée....
0
SofieV Messages postés 20 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 septembre 2004 3
30 août 2004 à 09:56
Ok, ça fonctionne comme ça....merci!
0
Rejoignez-nous