Copie d’une plage Excel dans un document Word, VBA

Supposons que vous ayez une table de données dans votre classeur Excel sur la feuille Feuil1 dans la plage A1: F20.

Vous souhaitez exporter le tableau dans un document Word existant nommé monDocWord.docx, dont vous savez qu’il existe et que vous savez qu’il est fermé. Pour le rendre intéressant, disons que la tâche appelle l’ensemble d’actions suivant:

■ Ouvrez Word.

■ Ouvrez monDocWord.docx.

■ Exportez la table de données d’Excel dans le document monDocWord.docx.

■ Enregistrez monDocWord.docx.

■ Fermez monDocWord.docx.

La macro suivante accomplit cette tâche très rapidement. Notez que vous pouvez copier la plage utilisée d’une feuille de calcul ou la région actuelle d’une cellule; vous n’avez pas besoin de faire référence à une adresse de plage spécifique comme le fait cet exemple:

Sub ExportationExcelWord()

' Désactivez ScreenUpdating.

Application.ScreenUpdating = False

' Copiez la plage Excel à exporter.

Worksheets("Feuil1").Range("A1:F20").Copy

' Déclarez les variables d'objet.

Dim WdApp As Object, wddoc As Object

'Ouvrir Word

Set WdApp = CreateObject("Word.Application")

' Ouvrez le document Word qui acceptera les données exportées.

Set wddoc =

WdApp.Documents.Open(Filename:="C:\Your\File\Path\myWordDoc.docx")

' Collez les données copiées d'Excel dans le document Word.

wddoc.Range.Paste

' Fermez le document Word et enregistrez les modifications.

wddoc.Close savechanges:=True

' Quittez l'application Word.

WdApp.Quit

' Définissez les variables Object sur Nothing pour libérer la mémoire système.

Set wddoc = Nothing

Set WdApp = Nothing

' Quittez le mode Copie.

Application.CutCopyMode = False

' Rallumez ScreenUpdating.

Application.ScreenUpdating = True

End Sub

 

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x
()
x