bibiphoqie
XLDnaute Nouveau
Bonjour,
Je suis en stage et j'ai fait un gros travail avec des macros qui consiste à générer automatiquement des graphiques depuis Excel et à les exporter sur une même page Word (c'est à dire pour créer un tableau de bord).
Mon travail est quasiment terminé mais je me suis rendu compte qu'il devait y avait un gros problème. A chaque export, la macro ne sélectionne pas seulement le graphique mais en fait tout le classeur Excel qui est déjà gros. Ce qui fait qu'avec 10 graphiques sur la meme feuille, je me retrouve en fait avec 10 fois la taille du classeur Excel pour mon document Word.
Il m'est alors impossible d'enregistrer mon document Word qui est beaucoup trop volumineux.
Voilà le code que j'utilise pour mon export:
Je pense qu'il faudrait remplacer les 2 lignes en gras pour ne sélectionner que le graphique au lieu de sélectionner tout le classeur.
Quelquechose comme ça devrait marcher à la place
Mais il faudrait que ça marche pour n'importe quel graphique
J'attends vos suggestions avec impatience.
Merci
Je suis en stage et j'ai fait un gros travail avec des macros qui consiste à générer automatiquement des graphiques depuis Excel et à les exporter sur une même page Word (c'est à dire pour créer un tableau de bord).
Mon travail est quasiment terminé mais je me suis rendu compte qu'il devait y avait un gros problème. A chaque export, la macro ne sélectionne pas seulement le graphique mais en fait tout le classeur Excel qui est déjà gros. Ce qui fait qu'avec 10 graphiques sur la meme feuille, je me retrouve en fait avec 10 fois la taille du classeur Excel pour mon document Word.
Il m'est alors impossible d'enregistrer mon document Word qui est beaucoup trop volumineux.
Voilà le code que j'utilise pour mon export:
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("A9:F12"), PlotBy _
:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.ChartArea.Select
ActiveWindow.Visible = False
Selection.Cut
Set WordApp = New Word.Application
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open("D:\Documents and Settings\gaelles.doc", ReadOnly:=True)
WordApp.Selection.Paste
Je pense qu'il faudrait remplacer les 2 lignes en gras pour ne sélectionner que le graphique au lieu de sélectionner tout le classeur.
Quelquechose comme ça devrait marcher à la place
ActiveSheet.ChartObjects("Graphique 637").Activate
ActiveChart.ChartArea.Select
Mais il faudrait que ça marche pour n'importe quel graphique
J'attends vos suggestions avec impatience.
Merci