 |
| | |  |  |  |  |  | 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 échangeable. 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).
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 :

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".
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()
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 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.
Une page sur les macros expliquera plus précisement ce code dans quelques temps.
Le résultat obtenu sera le suivant :

|