VBA pour copier coller des graphiques situés sur plusieurs feuilles excel sur Word

Laporreta

XLDnaute Nouveau
Bonjour à vous,

Nouvelle sur le forum, j'espère que vos lumières m'aideront !

Je souhaite faire un copier coller de mes graphiques excel situés sur plusieurs onglets sur un nouveau document word à partir d'une macro excel et que mon document word s'enregistre...

Débutante en VBA, j'ai essayé de fignoler un code... qui ne marche pas évidemment lol.

Voici mon code :

Sub PilotageWord3()
Dim MonBeauWord As Object
Set MonBeauWord = CreateObject("Word.Application")
' Création d'un nouveau document :
MonBeauWord.Documents.Add
' Ecriture d'un petit texte dans ce nouveau document :
MonBeauWord.Selection.TypeText "Test de fonctionnement"
'Selection du graphique à copier
Sheets("Référentiel métier accueil").Select
ActiveSheet.ChartObjects("Graphique 2").Activate
ActiveChart.ChartArea.Select
'Copie du graphique dans le presse papier
ActiveChart.ChartArea.Copy
'Copie du graphique
'(Pour info :macro initialement enregistrée sous word puis collée sur la macro Excel)
wrd.Selection.PasteAndFormat (wdChartPicture)
'Passage du curseur texte sur la ligne en dessous du graphique (pour coller un autre graphique
wrd.Selection.TypeParagraph
' Sauvegarde de ce document ainsi créé :
MonBeauWord.ActiveDocument.SaveAs "C:\Users\Marine\Desktop\Simple test2.doc"
' Fermeture de ce document :
MonBeauWord.ActiveDocument.Close
Set MonBeauWord = Nothing

End Sub

Ca bug au niveau de la ligne ; wrd.Selection.PasteAndFormat (wdChartPicture)

Merci pour votre aide !
 

PMO2

XLDnaute Accro
Re : VBA pour copier coller des graphiques situés sur plusieurs feuilles excel sur Wo

Bonjour,

Essayez avec votre code modifié

Code:
Option Explicit

Sub PilotageWord3()
Dim MonBeauWord As Object
Dim MonDoc As Object
Set MonBeauWord = CreateObject("Word.Application")
' Création d'un nouveau document :
Set MonDoc = MonBeauWord.Documents.Add
' Ecriture d'un petit texte dans ce nouveau document :
MonBeauWord.Selection.TypeText "Test de fonctionnement"
'Selection du graphique à copier
Sheets("Référentiel métier accueil").Select
ActiveSheet.ChartObjects("Graphique 2").Activate
ActiveChart.ChartArea.Select
'Copie du graphique dans le presse papier
ActiveChart.ChartArea.Copy
'Passage du curseur texte sur la ligne en dessous du texte
MonBeauWord.Selection.TypeParagraph
'Collage du graphique
MonBeauWord.Selection.PasteAndFormat (13)
'Passage du curseur texte sur la ligne en dessous du graphique (pour coller un autre graphique
MonBeauWord.Selection.TypeParagraph
' Sauvegarde de ce document ainsi créé :

      '/// A ADAPTER ///
MonBeauWord.ActiveDocument.SaveAs "c:\zaza.doc"     '"C:\Users\Marine\Desktop\Simple test2.doc"
      '/////////////////
      
' Fermeture de ce document :
MonDoc.Close
' Fermeture de l'application Word
MonBeauWord.Quit
' Destruction de la variable objet
Set MonBeauWord = Nothing
End Sub
 

Laporreta

XLDnaute Nouveau
Re : VBA pour copier coller des graphiques situés sur plusieurs feuilles excel sur Wo

Merci PMO2

Je souhaiterais aussi faire quelques petites choses :

Insérer un entête qui reprend le contenu des cellules C1 C2 et C3 dans le nouveau document

Qu'à la place du petit texte sur word celui ci soit un titre centré et en gras.

Mettre deux lignes sous mon graphique pour y insérer une zone encadré ?

Faire un saut de page après cette zone encadré?

Enfin, est-il possible de faire un aperçu avant impression ?

Merci

Voici la macro qui marche sur mon tableau :

Sub PilotageWord3()
Dim MonBeauWord As Object
Dim MonDoc As Object
Set MonBeauWord = CreateObject("Word.Application")
' Création d'un nouveau document :
Set MonDoc = MonBeauWord.Documents.Add
' Ecriture d'un titre dans ce nouveau document :
MonBeauWord.Selection.TypeText "Titre du document"
'Selection du graphique à copier
Sheets("Référentiel métier accueil").Select
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.ChartArea.Select
'Copie du graphique dans le presse papier
ActiveChart.ChartArea.Copy
'Passage du curseur texte sur la ligne en dessous du texte
MonBeauWord.Selection.TypeParagraph
'Collage du graphique
MonBeauWord.Selection.PasteAndFormat (13)

'**************
Dim MonGraph As Object 'InlineShape
If MonDoc.InlineShapes.Count > 0 Then
Set MonGraph = MonDoc.InlineShapes(MonDoc.InlineShapes.Count)
MonGraph.Height = 100 'hauteur
MonGraph.Width = 150 'largeur
End If
'**************

'Passage du curseur texte sur la ligne en dessous du graphique (pour coller un autre graphique
MonBeauWord.Selection.TypeParagraph
' Sauvegarde de ce document ainsi créé :

'/// A ADAPTER ///
MonBeauWord.ActiveDocument.SaveAs "c:\Documents and Settings\marineh\Bureau/test"
'/////////////////

' Fermeture de ce document :
MonDoc.Close
' Fermeture de l'application Word
MonBeauWord.Quit
' Destruction de la variable objet
Set MonBeauWord = Nothing
End Sub
 

Discussions similaires