Coller des graphs excel dsword avec automation

O

olivier

Guest
Bonjour,

J'ai créé des graphiques dans un classeur excel que je souhaite copier coller dans un rapport sous Word (via automation) à des endroits précis que j'ai repéré par des signets. Malheureusement les graphiques arrivent en vrac ds mon document Word.

Voici le code :

Sub Transfert()

Dim WordApp As Word.Application
Dim Rapport As Word.Document
Dim i As Integer

Set WordApp = CreateObject("Word.Application") 'creation session Word
WordApp.Visible = False 'word est masqué pendant l'opération
'ouverture du fichier Word
Set Rapport = WordApp.Documents.Open(ThisWorkbook.Path & "\Rapport.doc")

For i = 1 To 3 'i=Nbre de graphs à copier
Windows("Classeur1".xls").Activate
Sheets("Feuil1").Select
ActiveSheet.ChartObjects("Graphique " & i).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Rapport.Bookmarks("Signet" & i).Select
Rapport.Range.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, _
Placement:=wdInLine, DisplayAsIcon:=False
Next

WordApp.Visible = True

'fermer le document "Rapport.doc" et l'application Word
Rapport.Application.ActiveDocument.Save
WordApp.Application.Quit

Application.CutCopyMode = False

End Sub

Est ce que l'idée des signets est bonne?
Comment faire pour repositionner les graphiques?

Merci pour votre aide
 
M

michel

Guest
Re: boucle sur graphiques Excel et collage dans signets Word

bonsoir Olivier

la macro ci-joint :
Ouvre un document Word contenant 3 signets ( nommés Signet1 ,Signet2 , Signet3 )
Boucle sur les 3 premiers graphiques du classeur
Copie chaque graphique , puis le colle dans un Signet


Sub BoucleGraphiquesExcel_CollageDansSignetsWord()
'testé avec Excel2002
'nécéssite d'activer la référence Microsoft Word xx.x Object Library
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim i As Byte

Set WordApp = CreateObject("word.application")
Set WordDoc = WordApp.Documents.Open(ThisWorkbook.Path & "\leFichier.doc")

For i = 1 To 3 'boucle sur les 3 premiers graphiques du classeur
Sheets("Feuil1").ChartObjects(i).Copy 'copie le graphique

'les signets du document Word sont nommés Signet1 , Signet2 , Signet3
'chaque graphique est associé à un des signets lors du collage
WordDoc.Bookmarks("Signet" & i).Range.PasteSpecial _
Link:=False, DataType:=wdPasteEnhancedMetafile, _
Placement:=wdInLine, DisplayAsIcon:=False

Next i

WordApp.Visible = True

'WordDoc.Close True 'ferme le document word en sauvegardant les données
'WordApp.Quit 'ferme la session Word
End Sub


bonne soirée
MichelXld
 
O

olivier

Guest
Re: boucle sur graphiques Excel et collage dans signets Word

Merci Michel pour ta réponse qui me permet d'avancer.

Ca marche aussi en excel 2000.

Comment toujours à partir de la macro Excel modifier les paramètres de l'image ainsi collée (en fait le signet se situe dans un tableau et l'image est collée par défaut sur le tableau et non pas dans la cellule comme je le souhaiterai)?

En effet, je voudrais modifier le format d'habillage de l'image (format, image habillage encadré) mais je n'arrive pas à la sélectionner dans Word puisqu'elle porte un nom "picture X" et que je ne connais pas le X en question.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa