Propriété des graphiques en vbe (excel)

Garcinou Messages postés 7 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 18 juillet 2011 - 7 mai 2009 à 13:56
Garcinou Messages postés 7 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 18 juillet 2011 - 12 mai 2009 à 13:36
Bonjour, dans un petit logiciel que je suis en train de développer, je fais tracer un graphique à excel puis j'exporte ce graphique en format gif et je le fais afficher dans un userform (jusque là pas de soucis). Mais le graphique tracé par défault est de taille assez petite et lorsque l'image est étirée la qualité est disons minable. Je souhaite donc étirer la taille du graph dans la macro qui le crée... Le réel problème en fait est d'interférer sur les propriétés DU GRAPH QUI EST CREE et pas du "Graphique 11" par exemple car si je réexécute la macro le graphique s'apelle "Graphique 12"... J'espère que le problème est compréhensible!

voici la macro de traçage (dans un module) qui ne marche pas :

Sub Macro1()

Range("A5:D32").Select
Range("D5").Activate
Charts.Add
ActiveChart.ApplyCustomType ChartType:=xlUserDefined, TypeName:="MétéO"
ActiveChart.SeriesCollection(1).Name = "=Feuil1!R1C2"
ActiveChart.SeriesCollection(2).Name = "=Feuil1!R1C3"
ActiveChart.SeriesCollection(3).Name = "=Feuil1!R1C4"
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("A5:D32")
ActiveChart.Name = "LeNomDuGraphique" 'Apparement celà ne sert à rien puisque non reconnu
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
ActiveSheet.Shapes("LeNomDuGraphique").IncrementLeft -197.25 'ça plante à partir de là : il ne reconait pas le nom
ActiveSheet.Shapes("LeNomDuGraphique").IncrementTop -111.75
ActiveSheet.Shapes("LeNomDuGraphique").ScaleWidth 1.94, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("LeNomDuGraphique").ScaleHeight 1.92, msoFalse, _
msoScaleFromTopLeft

'exportation format gif

fichier = ThisWorkbook.Path & "\graphique.gif"
ActiveChart.Export fichier, "gif"

End Sub




En gros je pense le "nommage" du graph ne fonctionne pas (du moins il n'est pas reconnu)
Peut-être serait-ce utile de le supprimer de la feuille d'excel après exportation?


Merci d'avance..

PS : débutant

2 réponses

CtowerH Messages postés 4 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 8 juin 2009
7 mai 2009 à 22:15
Salut,
Effectivement la ligne ActiveChart.Name = "LeNomDuGraphique" ne sert à rien du fait que tu dois déplacer le conteneur de ActiveChart. Se qui veux dire que c'est le nom de son "parent" (conteneur) qu'il te faut.

remplace dans tout ton code ActiveSheet.Shapes("LeNomDuGraphique") par ActiveSheet.Shapes(ActiveChart.Parent.ShapeRange.Name) donc 4 fois.

Et pour le supprimer à la fin c'est ActiveSheet.Shapes(ActiveChart.Parent.ShapeRange.Name).Delete

Have fun
0
Garcinou Messages postés 7 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 18 juillet 2011
12 mai 2009 à 13:36
Merci beaucoup !

Ca marche tout à fait comme je le souhaitais...

Maintenant il ne me reste plus qu'à gérer les impressions ! Peut-être le sujet d'une prochaine question...

Merci encore
0
Rejoignez-nous