Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mit Excel VBA auf Word Dokumente zugreifen und Inhalte lesen

Mit Excel VBA auf Word Dokumente zugreifen und Inhalte lesen
08.11.2023 14:41:33
stef26
Hallo liebe Excel Profis,
ich hab da mal ein Problem, welches mich völlig überfordert und ich auf eure Unterstützung hoffe.

Ich lade mir aus SAP Dokumente in einem Order. Dort liegen dann so um die 30 Word Dokumente.
Von diesen Word Dokumenten würde ich gerne in Excel den Dateinamen auflisten, was ich so machen würde:

Sub DateinamenAuflisten()
'Dateinamen in einem bestimmten Verzeichnis auflisten
'Die Angabe des Verzeichnises erfolgt in DOS Konvention
'Eingefügt werden die Daten ab der aktiven Zelle
Dim Dateiname As String, i As Integer
'Dateiname = Dir$("C:\Patis\test\*.*") 'Hier Verzeichnis und Datei angeben
Dateiname = Dir$(Sheets("Datei-Verzeichnis").Range("I1")) ' Hier Verzeichnis in Zelle I1 der Tabelle "Datei-Verzeichnis" schreiben
Do While Dateiname > ""
Range("A2").Offset(i, 0) = Dateiname
i = i + 1
Dateiname = Dir$()
Loop
End Sub

Wie ich nun die Informationen aus den Word Dateien bekomme und in den Spalten daneben auflisten kann erschließt sich mir leider nicht.

Ich hätte im Anhang ein Beispiel so einer Datei, mit den Feldern gelb markiert, die ich bräuchte.
https://www.herber.de/bbs/user/164121.xls (müsste noch in docx umbenannt werden / ich hoffe das geht so)

Ich hoffe das ist nicht zu komplex (was ich ein wenig befürchte...)

Gruß
Stefan

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit Excel VBA auf Word Dokumente zugreifen und Inhalte lesen
08.11.2023 16:00:26
Fennek
Hallo,

die Texte der Felder werden so in Word gelesen:


Sub T_1()
Dim FLD As Field
With ActiveDocument
Debug.Print .Fields.Count
For Each FLD In .Fields
If FLD.Type > 71 Then
Debug.Print FLD.Result

End If
Next FLD
End With
End Sub


Den Zugriff auf die CheckBoxen habe ich nicht gefunden.

mfg
AW: so geht's
08.11.2023 16:32:03
Fennek

Sub T_2()
Dim FLD As FormField
With ActiveDocument
Debug.Print .FormFields.Count
For Each FLD In .FormFields
If FLD.Type = 70 Then
Debug.Print FLD.Name, FLD.Range.Text
Else
Debug.Print FLD.Name, FLD.CheckBox.Value
End If
Next FLD
End With
End Sub
Anzeige
AW: aus Excel
08.11.2023 17:33:37
Fennek

Sub Read_Word()
Dim WD As Object, Doc As Object, FLD As Object
Dim Pfad As String

Set WD = CreateObject("Word.Application")
Pfad = Environ("userprofile") & "\Desktop\"

f = Dir(Pfad & "*.doc*")
Do
Debug.Print f
i = i + 1
Set Doc = WD.documents.Open(Pfad & f)

For Each FLD In Doc.formfields
sp = sp + 1
If FLD.Type = 70 Then
Cells(i, sp) = FLD.Range.Text
Else
Cells(i, sp) = FLD.CheckBox.Value
End If

Next FLD
Doc.Close 0
f = Dir
Loop Until f = ""

WD.Quit
End Sub
Anzeige
AW: aus Excel
10.11.2023 10:46:38
stef26
Hallo Fennek,
vielen Dank, das ist genau das was ich brauche.

Danke für deinen Support!!!

:-)
Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige