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.
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.
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 :