MonsieurBoeuf
XLDnaute Nouveau
Bonjour à tous,
J'aurai besoin de petit coup de pouce pour un problème qui jusqu'alors est resté insoluble pour moi.
Je m'explique: j'ai créée un document Word "standart" constitué de plusieurs tables à l'intérieur desquelles j'ai placé soit des champs de type liste déroulante soit des champs texte.
Mon objectif est de récupérer une partie des informations contenues dans ces tables: toutes les valeurs choisies dans les listes déroulantes et une partie des champs texte. (et ce pour 70 documents en gros)
Pour le moment voici le code que j'utilise:
Sub ImportWord()
Dim wdApp As New Word.Application
Dim wdDoc As Word.Document
Dim wdTbl As Word.Table
Dim wdFichier As String
Dim Sh As Worksheet
Dim NewLig As Long
Application.ScreenUpdating = False
wdFichier = "C:\Users\user\Desktop\Mondocument.docx"
Set Sh = ThisWorkbook.Sheets("Feuil3")
NewLig = Sh.Cells(Sh.Rows.Count, "A").End(xlUp).Row + 2
With wdApp
.Visible = False
Set wdDoc = .Documents.Open(wdFichier)
With wdDoc
.Protect Type:=wdNoProtection
For Each wdTbl In .Tables
wdTbl.Range.Copy
Sh.Range("A" & NewLig).Select
Sh.PasteSpecial Format:="Texte"
NewLig = NewLig + wdTbl.Rows.Count + 2
Next wdTbl
.Close
End With
.Quit False
Set wdDoc = Nothing
End With
Set wdApp = Nothing
Set Sh = Nothing
End Sub
J'ai une erreur du type "La méthode de la Select de la classe Range a échoué"
Je n'arrive pas à lever cette erreur de compilation...
Je sollicite donc votre aide pour m'aider à résoudre ce problème et plus encore si vous pensez pouvoir optimiser mon code.
D'avance merci beaucoup !
J'aurai besoin de petit coup de pouce pour un problème qui jusqu'alors est resté insoluble pour moi.
Je m'explique: j'ai créée un document Word "standart" constitué de plusieurs tables à l'intérieur desquelles j'ai placé soit des champs de type liste déroulante soit des champs texte.
Mon objectif est de récupérer une partie des informations contenues dans ces tables: toutes les valeurs choisies dans les listes déroulantes et une partie des champs texte. (et ce pour 70 documents en gros)
Pour le moment voici le code que j'utilise:
Sub ImportWord()
Dim wdApp As New Word.Application
Dim wdDoc As Word.Document
Dim wdTbl As Word.Table
Dim wdFichier As String
Dim Sh As Worksheet
Dim NewLig As Long
Application.ScreenUpdating = False
wdFichier = "C:\Users\user\Desktop\Mondocument.docx"
Set Sh = ThisWorkbook.Sheets("Feuil3")
NewLig = Sh.Cells(Sh.Rows.Count, "A").End(xlUp).Row + 2
With wdApp
.Visible = False
Set wdDoc = .Documents.Open(wdFichier)
With wdDoc
.Protect Type:=wdNoProtection
For Each wdTbl In .Tables
wdTbl.Range.Copy
Sh.Range("A" & NewLig).Select
Sh.PasteSpecial Format:="Texte"
NewLig = NewLig + wdTbl.Rows.Count + 2
Next wdTbl
.Close
End With
.Quit False
Set wdDoc = Nothing
End With
Set wdApp = Nothing
Set Sh = Nothing
End Sub
J'ai une erreur du type "La méthode de la Select de la classe Range a échoué"
Je n'arrive pas à lever cette erreur de compilation...
Je sollicite donc votre aide pour m'aider à résoudre ce problème et plus encore si vous pensez pouvoir optimiser mon code.
D'avance merci beaucoup !