Bonjour
Je ne comprends pas cette partie :
Code :
- With ActiveChart.ChartArea
- .Left = Range("V6" ).Left
- .Top = Range("V6" ).Top
- .Height = Range("V6" ).Height
- .Width = 200
- End With
|
Tu ne modifies pas le Graphique a proprement parlé, mais la zone graphique a l'interieur de l'objet graphique. Donc tu veux que la zone graphique soit a la ligne 6 alors que ton objet graphique n'a pas encore bougé. D'ou ton message d'erreur.
Ton objet graphique c'est l'image finale en fait. Et c'est ca que tu dois bouger a la ligne 6 avant de modifier la zone graphique, qui elle, est a l'interieur.
Pour jouer sur les .Top .Left etc. il vaut mieux passer par Shapes, pour atteindre l'objet graphique.
Ex :
Code :
- 'Récuperation du nom du graphique Actif (il est composé du nom de la feuille ou il est plus son nom a lui, il faut donc enlever le nom de la feuille pour l'atteindre.
- NomGraph = Right(ActiveChart.Name, Len(ActiveChart.Name) - Len(ActiveSheet.Name) - 1)
- ActiveSheet.Shapes(NomGraph).Left = Range("V6" ).Left
- ActiveSheet.Shapes(NomGraph).Top = Range("V6" ).Top
|
Et la tu positionnes ton graphique sur ta feuille comme tu l'entends.
Edit : Attention tout de meme, ActiveChart.Name est a récupérer seulement une fois que le graph est dans la feuille. Donc apres ton
Code :
- .Location xlLocationAsObject, "CFR"
|
En effet, Excel créé d'abord une feuille/onglet avec le nom du graphique sous la forme "GraphX", donc le ActiveChart.Name renverrait "GraphX"
Ensuite si tu dis de le mettre dans une feuille, Excel copie la feuille/onglet graphique en tant qu'objet graphique sur ta feuille. (Un Shape)
Il supprime enfin la feuille graphique
Et donc le nom du Shape devient "NomDeLaFeuille Graphique X"
Message édité par SuppotDeSaTante le 23-07-2009 à 12:37:07
---------------
Soyez malin, louez entre voisins !