VBA: Copier un graphique excel vers word

Signaler
Messages postés
1
Date d'inscription
mercredi 30 mars 2011
Statut
Membre
Dernière intervention
30 mars 2011
-
Messages postés
26
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
26 mars 2015
-
Bonjour,
je suis débutant en code Vba, et je cherche à exporter un graphique excel sur un document Word via des signets.
J'ai cherché sur de nombreux forums, mais je tourne en rond....
J'ai essayé d'écrire le code (ci dessous), mais il manque surement des éléments indispensables ou des erreurs importantes...
Merci de votre aide...



Sub graphtest()

Dim WordApp As Word.Application
Dim WordDoc As Word.Document

Set WordApp = New Word.Application
WordApp.Visible = True

'ouvre document Word
Set WordDoc = WordApp.Documents.Open("C:\Documents and Settings\test.doc")

'pour copier le graphique "Graphe" dans non classeur excel
ActiveSheet.ChartObjects("Graphe").Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy

' Le signet pour ce graphique se nomme "graphcourbe" dans Word

With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:="graphcourbe"
End With

'Recherche du signet "graphcourbe"
Selection.GoTo What:=wdGoToBookmark, Name:="graphcourbe"


'Collage du graphique dans Word

Selection.PasteSpecial Link:=false, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False


' Ajustement du graphique à la page word
document_word.Tables(1).AutoFitBehavior wdAutoFitWindow

End Sub

3 réponses

Messages postés
420
Date d'inscription
vendredi 17 novembre 2006
Statut
Membre
Dernière intervention
15 juillet 2014
9
Bonjour,

Voici un petit exemple qui fonctione. Il part du principe que le signet "signetGraphique" est déjà créé dans le document Word et que la macro est exécuté depuis Excel. Il faut aussi penser à ajouter la référence "Microsoft Word X.X Object Library" à votre classeur.

Public Sub CopieGraphique()

    'Récupération du graphique qui, dans mon exemple, se trouve sur la feuille 1
    'et se nomme "Graphique 1"
    Dim graphique As Shape
    Set graphique = Feuil1.Shapes("Graphique 1")
    
    On Error GoTo fin
    
    'Nouvelle instance de Word
    Dim wordApp As New Word.Application
    
    'Ouverture du document Word
    Dim wordDoc As Word.Document
    Set wordDoc = wordApp.Documents.Open("C:\Test.doc")
    
    'Copie le graphique
    graphique.Copy
    
    'Colle le graphique dans le document Word
    wordDoc.Bookmarks("signetGraphique").Range.PasteAndFormat wdPasteDefault
               
    'Ferme le document word avec sauvegarde
    wordDoc.Close True
fin:

    'Quite l'application Word
    wordApp.Quit
    Set wordApp = Nothing
End Sub
Messages postés
26
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
26 mars 2015

Merci..
J'essayerai ce soir ...
Merci encore
Messages postés
26
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
26 mars 2015

Merci ca marche!