Problème capital d'export graphique

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:
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

:eek: :eek:
 

MichelXld

XLDnaute Barbatruc
Re : Problème capital d'export graphique

Bonjour

Pour alléger ton fichier Word, une solution pourrait consister à simplement faire un collage spécial avec liaison: le tableau saffiche dans Word mais les données sont toujours stockées dans le classeur.
Les modifications apportées dans le classeurs seront automatiquement reportées dans le document Word.

Code:
WordApp.Selection.PasteSpecial link:=True


Bonne journée
MichelXld
 

bibiphoqie

XLDnaute Nouveau
Re : Problème capital d'export graphique

Salut,

je viens de faire le code suivant
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.PasteSpecial link:=True
Mais il y a une erreur avec la dernière ligne, est-ce que je ne l'ai pas bien utilisé? :confused:
 

MichelXld

XLDnaute Barbatruc
Re : Problème capital d'export graphique

bonjour

Tu peux tester cette adaptation

Code:
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.ChartObjects.Copy

Set WordApp = New Word.Application
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open _
    ("D:\Documents and Settings\gaelles.doc", ReadOnly:=False)

WordDoc.Range.PasteSpecial link:=True

Bonne journée
MichelXld
 

bibiphoqie

XLDnaute Nouveau
Re : Problème capital d'export graphique

Bonjour,

(Pardon pour mon long silence)...
J'ai essayé le code de MichelXld (merci au passage), mais j'ai encore une erreur sur la dernière ligne; l'erreur dit "Impossible d'obtenir les données pour la liaison Graphique Microsoft Excel".

Est-ce que cela concerne une référence que j'aurais oublier d'activer? ou autre chose?

Merci de votre aide

Cdlt
 

bibiphoqie

XLDnaute Nouveau
Re : Problème capital d'export graphique

Bonjour à tous,

Grâce aux pistes données par MichelXld, j'ai finalement trouvé la solution à mon problème, le code suivant marche très bien (j'ai mis la ligne concernant le collage spécial en gras):

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.ChartObjects.Copy

Set WordApp = New Word.Application
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open _
("D:\Documents and Settings\gaelles.doc", ReadOnly:=False)

WordApp.Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, _
Placement:=wdFloatOverText, DisplayAsIcon:=False
Voilà, c'est super, ça marche :D

à ++
 

Discussions similaires


Haut Bas