Tutoriel Word/Excel Recupération d'Info 1. Objectif de cette page
Ce tutoriel présente une solution pour récupérer dans Excel des informations d'un formulaire Word. L'utilisation recoupe celle d'une base de données, mais en nettement plus lourd. L'intérêt n'est donc pas la légèreté d'utilisation, mais les documents words sont facilement échangeables. Ce procédé permet donc de synthétiser les informations venant de plusieurs sources (par exemple des informations qui doivent être fournies par un client). 2. Fichiers exemples
Les fichiers créés pour cet exemple sont dans le zip : tutorielrecupinfo.zip 3. Création du document Word
3. 1. Création du formulaire
Dans Word, afficher la barre des formules (dans les barres d'outils). Dans votre document, insérer un champ texte par l'intermédiaire de la barre de formule : 3. 2. Personnalisation des champs
Double-cliquez sur le champ (partie grisée), la fenêtre suivante apparait : 3. 3. Résultat final
Au final, j'obtiens un fichier avec 7 champs : CNom, CContact, CWeb, CEmail, CVille, CIdClient, CLoginClient. Le fichier ressemble à ceci : N'oubliez pas de cliquez sur "Protection du formulaire" sur votre modèle de manière à ne pouvoir modifier que les champs, et plus le texte. 3. 4. Saisies d'information
Maintenant, il faut copier/coller ce fichier pour en faire plusieurs, et tous les mettre dans le même répertoire. Dans le fichier zip (tutorielrecupinfo.zip), vous trouverez également des exemples de document afin de faire des tests. 4. Création du document Excel
4. 1. Création du fichier
Créer le fichier dans le même répertoire que les documents word. Dans mon cas, je l'ai appelé "resum_client.xls". 4. 2. Macro
La macro suivante permet de faire la synthèse. Il y a 4 variables qui seront à modifier en fonction de votre cas (en bleu turquoise et gras) : Sub import_client()
Une fois ce code saisi dans une macro (en utilisant le menu "Outils/Macro/Visual Basic Editor"), exécutez-la en appuyant
sur "Alt+F8" et en la choisissant dans la liste des macros.Dim Fich As Worksheet Set Fich = ThisWorkbook.Worksheets("All_Clients") chemin = "d:\tutorielrecupinfo\" mesfichiers = Dir(chemin & "*.doc") Dim Variables As Variant Variables = Array("CNom", "CContact", "CWeb", "CEmail", "CVille", "CIdClient", "CLoginClient") nb_Champs = 7 num_row = 1 i = 0 For i = 0 To nb_Champs - 1 Fich.Cells(num_row, i + 1) = Variables(i) Next i Set FichierWord = CreateObject("word.application") FichierWord.Visible = True FichierWord.DisplayAlerts = False Do While mesfichiers <> "" If mesfichiers <> "." And mesfichiers <> ".." And mesfichiers <> "clients.doc" Then monDocument = chemin & mesfichiers FichierWord.documents.Open Filename:=monDocument, ReadOnly:=True num_row = num_row + 1 num_col = 1 For i = 0 To nb_Champs - 1 Fich.Cells(num_row, i + 1) = FichierWord.activedocument.formfields(Variables(i)).result Next i FichierWord.documents.Close (0) End If mesfichiers = Dir Loop FichierWord.Quit End Sub Une page sur les macros expliquera plus précisement ce code dans quelques temps. Le résultat obtenu sera le suivant : |