VBA et Office : extraire automatiquement des données Excel vers Word

De nombreuses tâches répétitives et chronophages sur Office sont automatisables grâce au VBA. En prenant pour exemple l’envoi d’une circulaire, Jörn Schramm, formateur VBA, montre comment exporter en un seul clic du contenu Excel vers Word.

Auteur Jörn Schramm
Date 08.03.2021
Temps de lecture 6 Minutes

Vous possédez un classeur Excel avec une liste d’adresses et vous désirez envoyer une circulaire. Vous voulez donc accéder à ces données sans avoir à copier les adresses manuellement, ligne par ligne, vers Word.

C’est tout à fait possible. Grâce à quelques connaissances en programmation VBA (Visual Basic for Applications), il est possible d’importer en un seul clic chaque adresse dans la partie adresse de votre modèle Word. Notre formateur Jörn Schramm vous guide pas à pas dans cette démarche.

Tutoriel : Exporter automatiquement des adresses vers Word grâce au VBA

Le tableau suivant est un extrait d’une liste d’adresse (toutes les adresses sont fictives et toute ressemblance avec des adresses réelles serait purement fortuite).

La cellule A8 est active. Une lettre doit être envoyée à l’adresse mentionnée dans cette ligne.

1. Placer les signets dans le document Word

Afin que les informations puissent être placées par notre programme aux bons endroits dans un document Word, ces emplacements doivent être signalés. Pour ce faire, on utilise des « signets ».

On différencie ici les signets de position et les signets de contenu. Les signets de position ne sont déterminés que par leur position ; ceux-ci sont alors par la suite visibles dans le document que si l’option correspondante sur Word est cochée.
Pour une modification ultérieure du document, les signets de contenu sont plus maniables : ils contiennent déjà du texte pertinent qui sera ensuite remplacé par notre programme.

Dans le document que nous avons préparé, des signets doivent être ajoutés pour les positions où se trouvent les mots « Adresse », « Date » et « Concerne ».

Pour cela, on sélectionne chaque mot, un par un, et on ajoute le signet correspondant en allant dans l’onglet « Insertion » puis en sélectionnant « Signet ». Nous avons ainsi fini notre travail sur Word.
On passe maintenant sur Excel.

Comme le programme sera lancé depuis Excel, nous devons encore faire comprendre à Excel qu’il faut faire appel au programme Word ; sinon, Excel ne comprendra pas les instructions pour accéder au document Word.

2. Référencer la bibliothèque Word Object Library

Pour cela, il est nécessaire d’ajouter une référence vers la bibliothèque Word. Sur Excel, ouvrez une fenêtre « Visual Basic » sous l’onglet « Développeur ». Dans le menu « Outils », cliquez sur « Références » et vérifiez que la bibliothèque « Microsoft Word 16.0 Object Library » est sélectionnée.

C’est ici que la programmation VBA commence vraiment.

3. Définir les variables

Dim lngLigne As Long

Dim strAdresse As String

Dim strConcerne As String

' On crée maintenant un objet Word

Dim objWord As New Word.Application

4. Rendre Word visible

objWord.Visible = True

' On crée un nouveau document Word basé sur le modèle créé plus tôt

objWord.Documents.Add "C:\...\Nom_du_fichier_du_modèle.dotx"

' On s’assure que la bonne feuille du classeur est active

Sheets("nom_de_la_feuille_de_calcul").Activate

5. Déterminer la ligne grâce à la cellule active

lngLigne = ActiveCell.Row

' On assemble ensuite l’adresse; « vbNewLine » génère un retour à la ligne

strAdresse = Cells(lngLigne, 1) & vbNewLine & Cells(lngLigne, 3) & " " & Cells(lngLigne, 2) _

& vbNewLine & Cells(lngLigne, 4) & vbNewLine & Cells(lngLigne, 5) & " " & Cells(lngLigne, 6)

6. Demander le motif de la lettre

strConcerne = InputBox("Entrez le motif de la lettre", "Écrire une lettre", _
"Entrez le motif de la lettre ici")

7. Remplir les signets

objWord.ActiveDocument.Bookmarks("Adresse").Range.Text = strAdresse

objWord.ActiveDocument.Bookmarks("Date").Range.Text = Date

objWord.ActiveDocument.Bookmarks("Concerne").Range.Text = strConcerne

Et voilà, terminé !

Prêts pour le VBA ?

Tirez profit des possibilités offertes par le Visual Basic for Applications (VBA) et rendez votre travail avec Office plus productif et efficace. Notre large éventail de formations au VBA vous permet de suivre exactement le cours qui vous permettra d’atteindre vos objectifs professionnels.

  • VBA – Fondamentaux (“VBGLN“)
  • VBA – Approfondissement en Excel (“VBXLS“)
  • Excel – Macros & Fonctions (“EMK“)

Cliquez ici pour accéder à nos formations VBA

Tirez profit des possibilités offertes par le Visual Basic for Applications (VBA) et rendez votre travail avec Office plus productif et efficace. Notre large éventail de formations au VBA vous permet de suivre exactement le cours qui vous permettra d’atteindre vos objectifs professionnels.

  • VBA – Fondamentaux (“VBGLN“)
  • VBA – Approfondissement en Excel (“VBXLS“)
  • Excel – Macros & Fonctions (“EMK“)

Cliquez ici pour accéder à nos formations VBA

Plus d’infos sur le VBA :


A propos de l'auteur

Jörn Schramm

Jörn est Microsoft Certified Trainer, certifié SVEB-I et formateur depuis 1999 chez Digicomp. Il est un expert VBA reconnu et spécialisé dans les applications complexes basées sur Access et Excel.