Pb: copier un graph Excel sur Word

Pb: copier un graph Excel sur Word - VB/VBA/VBS - Programmation

Marsh Posté le 30-03-2011 à 19:43:43    

Bonjour,
 
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...
Florian
 
 
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
 

Reply

Marsh Posté le 30-03-2011 à 19:43:43   

Reply

Marsh Posté le 17-05-2011 à 17:40:14    

Salut, J'étais justement en train de me pencher sur cette question.
 
La technique que j'ai trouvé sur internet repose sur une autre philosophie On mets le graphique dans un objet que l'on trimballe tranquille. Après si des gens plus calés ont mieux je suis preneur car ce n'est pas parfait.

Code :
  1. 'On enregistre le graphique en question sous une variable a l'aide d'un
  2.          Dim Graphe as Shape
  3.          set Graphe = feuille.graphe
  4.  
  5. 'Et une fois que cette étape est réalisée On Ouvre le fichier word
  6.          Dim wordApp As New Word.Application
  7.          Dim wordDoc As Word.Document
  8.          Set wordDoc = wordApp.Documents.Open("tonfichier" )
  9.  
  10. 'Puis on fait un copier collé
  11.          Graphe.Copy
  12.          wordDoc.Bookmarks("signet" ).Range.PasteAndFormat wdPasteDefault
  13.  
  14.  
  15. 'et on ferme bien sur le fichier word
  16.          wordDoc.Close True


 
Chez moi ça marche bien, au détail prêt que le collage est tout moche, et qu'il faudrait que je remplace ce collage par un collage spécial, qui mettrait le graphique dans l'alignement du texte.
 
Et sinon, elle bloque a quel niveau ta macro VBA ?


Message édité par Hadock31 le 17-05-2011 à 18:33:21
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed