Garcinou
Messages postés7Date d'inscriptiondimanche 26 avril 2009StatutMembreDernière intervention18 juillet 2011
-
7 mai 2009 à 13:56
Garcinou
Messages postés7Date d'inscriptiondimanche 26 avril 2009StatutMembreDernière intervention18 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
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?
CtowerH
Messages postés4Date d'inscriptionjeudi 6 février 2003StatutMembreDerniè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