Exporter des graphiques excel dans word

cs_Detou Messages postés 4 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 8 juillet 2005 - 8 juil. 2005 à 14:20
Mattheous Messages postés 8 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 19 mai 2006 - 13 mars 2006 à 10:49
Bonjour,

Cette question a déjà été posée mais n'a pas reçu de réponses.
Mon but est dans le titre, exporter une vingtaine de graphes excel dans un fichier word. Ma syntaxe est la suivante :

Sub exportword()
Dim Graph As ChartObject
Set wo = CreateObject("Word.Application")
doc = wo.documents.Add
For Each Graph In Sheets("Graphes").ChartObjects
Graph.Activate
Graph.Copy
wo.Selection.Paste <<======== Pas très sur de ce qui est sélectionné ici
Graph.Delete <<======== Une autre macro les crée juste avant
Next Graph
wo.activedocument.SaveAs Filename:="Nouvoscompt.doc"
wo.activedocument.Close
End Sub

Le problème est que le temps pour tout transférer est très long (1min voir plus) alors qu'il ne s'agit que de 20 copier-coller et la taille du fichier word est pluôt imposante (15mo).
Je cherche un moyen de rendre cela plus rapide et moins lourd, en imaginant que l'utilisateur des macros n'aura peut-être pas un pc aussi performant que le mien et risque d'être impatient.

Merci d'avance

2 réponses

cs_Detou Messages postés 4 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 8 juillet 2005
8 juil. 2005 à 15:58
Bon, j'ai trouvé la solution comme un grand. Mon problème était qu'il copiait carrément le graphique, il était donc éditable sous word et ca prenait trop de place. Je mets mon code si jamais ca intéresse quelqu'un.

Sub exportword()
Dim Graph As ChartObject
Set wo = CreateObject("Word.Application")
doc = wo.documents.Add
For Each Graph In Sheets("Graphes").ChartObjects
Graph.Activate
ActiveChart.CopyPicture Appearance:=xlPrinter, Size:=xlPrinter, Format:= _
xlPicture '<<===== Pour avoir une image de bonne qualité sous Word
wo.Selection.Paste
wo.Selection.typetext Text:=vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf '<<=== Pour espacer les graphes
Graph.Delete
Next Graph
wo.activedocument.SaveAs Filename:="Nouvoscompt.doc"
wo.activedocument.Close
Exit Sub
End Sub

La ca fait 65ko et c'est preque instantané.
A+
0
Mattheous Messages postés 8 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 19 mai 2006
13 mars 2006 à 10:49
Salut,

Je cherche à faire la meme chose, mais sous Access.
A savoir, j'ai des graphs sous Excel, que je voudrai integrer dans mes forms Access.
Sais tu comment je peux faire ?
Merci d'avance
0