- 1 – Sur une nouvelle feuille de calcul, créez un tableau de données, (ici A1:D8) puis à partir de ce tableau créez le graphique de votre choix.
- 2 – Accédez ensuite à votre éditeur Visual Basic ALT + F11 ou Développeur / Visual Basic. Pour pouvoir manipuler les objets ou les collections d’objets de Word, nous devons nous assurer que la bibliothèque qui les contient est active dans votre éditeur Visual Basic. Passez la commande F2 ou Affichage / Explorateur d’objets et vérifier sa présence dans la liste des bibliothèques d’objets.
- 3 – Si la bibliothèque Word est absente de la liste, passez la commande Outils / Références… et cochez la référence Microsoft Word 12.0 Object Library pour activer la bibliothèque des objets Word. Puis validez en cliquant sur Ok.
Sub Passage_Excel_Word()
Dim appWord As New Word.Application
Dim docWord As New Word.Document
Dim appWord As New Word.Application
Dim docWord As New Word.Document
' Il faut créer un nouveau document Word dans l'application Word
With appWord
.Visible = True
Set docWord = .Documents.Add
.Activate
End With
With appWord
.Visible = True
Set docWord = .Documents.Add
.Activate
End With
'Dans Word on ajoute une ligne de titre avec une mise en forme
With appWord.Selection
.TypeText Text:="Chiffre d'affaire 2003"
.HomeKey Unit:=wdLine
.EndKey Unit:=wdLine, Extend:=wdExtend
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Font.Size = 18
With .Font
.Name = "Arial"
.Size = 16
.Bold = True
End With
With appWord.Selection
.TypeText Text:="Chiffre d'affaire 2003"
.HomeKey Unit:=wdLine
.EndKey Unit:=wdLine, Extend:=wdExtend
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Font.Size = 18
With .Font
.Name = "Arial"
.Size = 16
.Bold = True
End With
'Copier le tableau Excel dans le presse papier
Range("a1:b8").Copy
Range("a1:b8").Copy
' Coller le tableau dans Word avec liaison
.EndKey Unit:=wdLine
.TypeParagraph
.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, _
Placement:=wdInLine, DisplayAsIcon:=False
.EndKey Unit:=wdLine
.TypeParagraph
.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, _
Placement:=wdInLine, DisplayAsIcon:=False
'Copier le graphique Excel dans le presse papier
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
'Coller le graphique dans Word
.TypeParagraph
.Paste
End With
.TypeParagraph
.Paste
End With
'Enregistrer le document Word
With docWord
.SaveAs ThisWorkbook.Path & "\ca_2003.doc", Allowsubstitutions:=True
With docWord
.SaveAs ThisWorkbook.Path & "\ca_2003.doc", Allowsubstitutions:=True
'Dans Word Aperçu avant impression du résultat
.PrintPreview
.PrintPreview
'Réinitialiser l'objet
Set appWord = Nothing
End With
End Sub
Set appWord = Nothing
End With
End Sub
- 5 – après exécution du code vous devriez avoir le document suivant en Aperçu avant impression dans Word.
6 commentaires:
Bonsoir,
Comment imposer la taille de l'objet copié (widht,height)lors du passage excel vers word par ole automation.
merci c'est tres clair
Monsieur
je n'arrive pas a traduire en code VBA un tableau excel en texte sans mise en forme WORD pour ensuite continuer ma macro et utiliser remplacer par notamment
marque de paragraphe
tabulation
et saut de ligne
Maeci d'avance
bonjour, je souhaite créer un document excel en choisissant dans une liste déroulante un membre du personnel et où j'aurai le choix entre plusieurs onglets à cocher et à décocher, chaque onglet représente un document qui serait renvoyer vers word pour y être imprimé en 2 exemplaires et envoyer sur un compte mail, merci jean christophe,jctassart@hotmail.com
je n'arrive pas à inserer une valeur d'excel dans word à l'e
mplacement d'un signet
l'Excel créé une sorte d'image dans word, est il possible de le copier dans le word afin qu'il soit facilement modifiable ?
merci
Enregistrer un commentaire