Le petit boût de code VBA ci-dessous pourra vous aider. Ajoutez le dans une macro Excel et il vous permettra de copier le contenu de tous les champs de votre formulaire Word vers Excel. Sur la première ligne vous retrouverez le nom de vos champs Word.
Sub ImportWord()
Dim Wd As Word.Application
Dim filename As String
Dim i As Byte
'On affiche la boite de dialogue pour sélectionner le fichier
filename = Application.GetOpenFilename("Fichier Word (*.doc*),*.doc*", 1, "Sélectionnez un document Word", "Ouvrir", False)
'On vérifie qu'un fichier a été sélectionné
If filename <> "" Then
filename = LCase(filename)
'et qu'il s'agit d'un document word
If Right(filename, 3) = "doc" Or Right(filename, 4) = "docx" Then
'Créer une instance de word
Set Wd = New Word.Application
With Wd
'Empêche Word de s'afficher à l'ouverture
.Visible = False
'Ouverture du document
.documents.Open (filename)
'Parcours de la collection de champs
Dim f As Field
For Each f In .ActiveDocument.Fields
'Nom du champs
Cells(1, f.Index).Value = .ActiveDocument.FormFields(f.Index).Name
'Valeur du champs si case à cocher
If f.Type = 71 Then
Cells(2, f.Index).Value = .ActiveDocument.FormFields(f.Index).CheckBox.Value
Else 'autres champs
Cells(2, f.Index).Value = f.Result.Text
End If
Next
'Ferme le document Word
.Quit False
End With
'Destruction de l'objet word
Set Wd = Nothing
End If
End If
End Sub
Aucun commentaire:
Enregistrer un commentaire