Problème redimensionnement et positionnement de graphique [VBA] - VB/VBA/VBS - Programmation
Marsh Posté le 23-07-2009 à 12:22:06
Bonjour
Je ne comprends pas cette partie :
Code :
|
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 :
|
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 :
|
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"
Marsh Posté le 27-07-2009 à 11:37:42
Merci infiniment dje69r.
Ca correspond exactement à ce que je recherchais : je n'avais pas assimilé la nuance entre Chart (donc l'objet graphique) et ChartArea (donc la zone graphique à l'intérieur de l'objet si j'ai bien compris). J'y vois un peu plus claire maintenant (même si je trouve cela assez compliqué, notamment le nom des graphique).
Citation : Excel créé d'abord une feuille/onglet avec le nom du graphique sous la forme "GraphX", donc le ActiveChart.Name renverrait "GraphX" |
En revanche, j'aurai eu une petite question concernant justement le nom du graphique. Je constate en effet qu'à chaque création d'un graphique, Excelle nomme "Graphique XXX" ou XXX est un index qui s'incrémente. Or, si je supprime ces même graphiques, XXX continue à s'incrémenter à partir du nombre avant la suppression des graphiques. Donc, en exagérant un peu, si je fais plusieurs fois la même action, je peux me retrouver avec un "Graphique 16984" dans un classeur où il n'y a que quelques graphiques.
Je me demandais donc d'une part si ça ne prenait pas de la place inutilement, vu qu'Excel semble conserver dans le fichier les noms de tous les graphiques déjà créés même si ceux-ci ont été supprimés. Ensuite, je me demandais s'il n'étais pas possible de procéder à une réinitialisation de l'index afin qu'on se retrouve avec des numéros d'index identiques au nombre de graphiques dans le classeur.
J'espère que j'ai réussi à me faire comprendre...
Encore merci pour tes conseils en tout cas et bonne semaine.
Cordialement.
MA
Marsh Posté le 28-07-2009 à 00:26:14
Oui j'ai compris.
Pour la place, a mon avis des numéros incrementés ca doit pas aller chercher bien loin....
Ca sera plus le graphique en lui meme qui prendra de la place, et qui meme supprimé peut ne pas faire baisser la taille de ton fichier.
Ensuite, je vois pas l'interet de le reinitialiser, etant donné que tu peux retrouver son numéro/nom aisément, vu que c'est toi qui le créé.
micaub a écrit : Encore merci pour tes conseils en tout cas et bonne semaine. |
Marsh Posté le 23-07-2009 à 11:58:29
Bonjour à tous.
Je rencontre actuellement un problème avec l'intégration d'un graphique dans une de mes feuilles Excel. Le graphique s'insère bien dans ma feuille et représente les bonnes valeurs ; mais les choses se corsent lorsque je commence à dimensionner et positionner le graphique en question.
En effet, dès que je fais appel à ActiveChart.ChartArea.Width/Top/Left/Height, un sublime message d'erreur apprait :
Erreur d'exécution '1004'
Impossible de définir la propriété Left de la classe ChartArea (ou Top, ou Height, ou Width)
Je ne sais si vous y verrez plus clair mais je me permet de joindre mon bout de code qui permet l'intégration du graphique :
Je ne sais pas si quelqu'un aura un semblant de solution. Merci en tous cas pour votre attention et votre patience.
Cordialement.
MA
Message édité par micaub le 23-07-2009 à 11:59:29