taille et emplacement de la fenêtre graphique

E

Elve

Guest
Bonjour à tous,

J'ai besoin d'aide pour modifier la taille d'une fenetre graphique donné par défaut.
Je ne peux utiliser la fonction :
ActiveSheet.Shapes("Graphique 1").ScaleWidth 0.79, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Graphique 1").ScaleHeight 1.15, msoFalse, _
msoScaleFromBottomRight

Car mon graphique crée n'a pas de nom.

En effet je crée des graphiques via une boucle, de ce fait mon nombre de graphique n'est pas déterminé.
Il faudrait que je puisse changer la taille sans avoir à le nommer, j'ai bien essayé de le faire pendant la création (par enregistrement de macro) mais par defaut excel donne un nom au graphique.

Je voudrais savoir si il possible de le faire pendant la création, en utilisant une méthode similaire à celle utilisée pendant la modification des options (par exemple l'échelle des axes), où dans ce cas là le graphique n'est pas nommé.

Le but de cette manipulation est de pouvoir sortir une version imprimable de ces graphiques sous la forme de 6 graphiques par feuille, car pour l'instant excel me sort les graphiques superposés.

Voila, je vous remercie tous pour votre aide.
Si je ne suis pas claire ou si cela n'est pas possible pourriez vous me le dire ....

Elve
 
J

Jon

Guest
bonjour

après l'inistruction d'ajout du graphique, tu peux utiliser l'instruction suivante : set mongraph=activechart

dès lors, tu peux manipuler ton graphique par le biais de cette variable

monchart.tapropriete=tavaleur


j'ai un classeur (pas terrible) où tu devrais trouver une ou deux manipulations. cd manipulation de graphiques là <http://xlbysteph.free.fr/aideinformatique/fichiers.html>

j'ai vu d'ailleurs que tu étais passé sur mon tchat hier, désolé de ne point avoir été là, je suis allé au cinoche ;-)

tu sais quetu peux manipuler la collection de graphiques ?


for each ch in activesheet.chartobjects
msgbox ch.name
next ch

le dernier graphqieu crée c'est
msgbox activesheet.chartobjects(activesheet.chartobjects.count).name
bye
stephane
 
E

Elve

Guest
Bonjour,

Merciii !!!
Ca marche, j'ai utilisé:
For Each ch In ActiveSheet.ChartObjects

grap = ch.Name

ActiveSheet.ChartObjects(grap).Activate
ActiveChart.ChartArea.Select
ActiveSheet.Shapes(grap).ScaleWidth 0.7, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes(grap).ScaleHeight 1.13, msoFalse, _
msoScaleFromBottomRight

Next ch
End Sub
car je n'ai pas reussi avec ta première méthode.

+++
Elve

Ps: je te trouve ton site tres utile, encore merci.
 

Discussions similaires

Réponses
6
Affichages
310
Réponses
6
Affichages
345
Réponses
2
Affichages
319

Statistiques des forums

Discussions
312 222
Messages
2 086 390
Membres
103 199
dernier inscrit
ATS1