Export données word vers Excel
Bonjour à tous,
J'ai un document word et je souhaiterai exporter les données vers un tableau excel.
Le document word se compose des champs suivants : Raison Sociale, SIRET, Adresse, Nom Prénom etc ... et toutes les données sont à retranscrire dans le document excel.
Je vous joins les deux documents pour que vous ayez l'exemple sous les yeux.
Sachant que j'aurais plusieurs documents word, et que chaque document word devra remplir 1 ligne sur le document excel.
Merci de votre aide.
Edit modo : fichier contenant de la publicité pour une marque, supprimé
Bonjour ngynvn
On ne fait jamais ça dans ce sens là
On rempli un fichier Excel et ensuite on fait du publipostage
@+
Bonjour,
Bonjour Bruno
D'accord avec ce que dit Bruno ! mais ton document word est peut-être donné par un tiers ou issu d'un autre logiciel ? sans ce document épuré des marques il sera difficile de répondre.
Tu peux déjà récupérer les infos de word et ensuite les formater dans ta base de données excel.
Bonjour à tous,
Sans vouloir contredire personne, et juste pour info, il m'est arrivé de faire ce type d'import pour des dossiers d'inscription (événement sportif).
Les personnes téléchargeaient une fiche d'inscription au format doc word de type "Formulaire" (donc intégrant des champs de saisie) =>
Cette fiche, une fois complétée par les personnes, étaient renvoyées à l'association sportive par mail.
Les fichiers reçus étaient copiés dans le dossier : ActiveWorkbook.Path & "\Reception\"
Un fichier Excel se chargeait d'importer les données Word dans une des feuilles.
Une fois le(s) fichier(s) importé(s) il(s) était(aient) déplacé(s) dans le dossier : ActiveWorkbook.Path & "\Reception\Dossiers_Saisis\"
Voici le code utilisé (le 'mot_de_passe' est à adapter ... et le reste aussi)
Sub Import_Formulaire_Word()
Dim Chemin As String, Chemin2 As String, NDF As String
Dim WordApp As Object, WordDoc As Object, oFSO As Object
Dim lg As Integer, NbChamps As Integer, i As Integer, j As Integer
Chemin = ActiveWorkbook.Path & "\Reception\"
Chemin2 = ActiveWorkbook.Path & "\Reception\Dossiers_Saisis\"
If Not ExisteRep(Chemin2) Then MkDir Chemin2
NDF = Dir(Chemin & "*.docx")
On Error Resume Next
Set WordApp = CreateObject("Word.Application")
Set oFSO = CreateObject("Scripting.FileSystemObject")
Do While NDF <> ""
lg = Feuil1.Cells(Rows.Count, "A").End(xlUp).Row + 1
Set WordDoc = WordApp.Documents.Open(Chemin & NDF, ReadOnly:=False)
WordDoc.Unprotect ("Mot_de_passe")
NbChamps = WordDoc.FormFields.Count
Feuil1.Cells(lg, 1) = NDF
For i = 1 To NbChamps
Feuil1.Cells(lg, i + 1) = WordDoc.FormFields(i).result
Next i
WordDoc.Application.ActiveDocument.Close
oFSO.moveFile Chemin & NDF, Chemin2 & NDF
NDF = Dir
Loop
WordApp.Application.Quit
Set WordDoc = Nothing
Set WordApp = Nothing
Set oFSO = Nothing
End Sub
Function ExisteRep(NDREP As String) As Boolean
On Error Resume Next
ExisteRep = GetAttr(NDREP) And vbDirectory
End Function
Cette manip évite au secrétariat de ressaisir à la main l'ensemble des info de la fiche (et pour près de 1500 participants c'est 'rentable')
Pierre
Bravo Pierre, moins basique que ma proposition ... si bien sûr le document word a été formaté.