Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
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

Word Tabellen auslesen

Word Tabellen auslesen
22.09.2023 15:07:58
Frank
Hallo Zusammen,

ich habe hier im Forum schon etwas zum Auslesen von Word-Tabellen gefunden.
Allerdings funktioniert das nur, wenn in den Word-Tabellen alle Spalten die gleiche Anzahl von Zeilen enthält.

Meine Word-Tabellen(und davon gibt es viele, in reichlich Word-Dateien) haben immer 3 Spalten und nur Spalte3 enthält eine unterschiedliche Anzahl an Zeilen.
Wie kann ich es umsetzten, dass jede Zeile aus der Spalte 3 in der Word-Tabelle, in jeweils eine darauffolgende Spalte in meiner Excel-Tabelle kopiert wird?

Hier mal mein Code


Sub uebertragen()
Dim I, Cellcount, RowsCount As Integer
Dim EX As Excel.Application
Dim objDoc As Word.Document
Dim objTab As Word.Table
Dim WB As Workbook
Dim WS As Worksheet
Dim strPath, strTMP, Datei, Datei1 As String
Dim intI As Integer
Dim fso As Object, File As Object
Dim varInhalt, lngZeile As Long, lngSpalte As Long

strPath = ("N:\CAS\Leitung\BPA\GQM\QM\PFAS")
Datei1 = "Kopie00 Comments submitted to date on restriction report.xlsm"
Set fso = CreateObject("Scripting.FileSystemObject")
For Each File In fso.GetFolder(strPath).Files
If fso.GetExtensionName(File) = "docx" And Left(File.Name, 19) = "rest_pfas_rcom_part" Then intI = intI + 1
Next File

Set fso = Nothing
lngZeileExcel = 2
For I = 1 To intI
Datei = "rest_pfas_rcom_part" & I & ".docx"
On Error Resume Next
lngZeileExcel = 2
Set objDoc = Word.Documents.Open(Filename:=strPath & "\" & Datei, ReadOnly:=True)
With WB(Datei1).WS(2)

Set objTab = objDoc.Tables(iTab)
For iTab = 1 To objDoc.Tables.Count
Set objTab = objDoc.Tables(iTab)


For lngZeile = 1 To objTab.Rows.Count
lngSpExcel = 9

For lngSpalte = 1 To objTab.Columns.Count '1. Spalte in die Woedinhalte eingetragen werden sollen
varInhalt = objTab.Cell(lngZeile, lngSpalte).Range.Text 'Inhalt Wordzelle
varInhalt = Left(varInhalt, Len(varInhalt) - 2) 'letzte beiden Zeichen abschneiden
Cells(lngZeileExcel, lngSpExcel).Value = varInhalt 'in Exceltabelle eintragen
lngSpExcel = lngSpExcel + 1 'nächste Einfüge Spalte im Exelblatt
Next

lngZeileExcel = lngZeileExcel + 1
Next
Next
End With
objDoc.Close savechanges:=False
Next
End Sub


Vorab schon mal vielen Dank und ein schönes Wochenende

Gruß
Frank

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Word Tabellen auslesen
22.09.2023 16:23:40
snb
Zeig mal eine Word Datei.
AW: Word Tabellen auslesen
22.09.2023 16:39:00
snb
Sub M_snb()

sn = Split(CreateObject("wscript.shell").exec("cmd /c dir ""N:\CAS\Leitung\BPA\GQM\QM\PFAS\rest_pfas_rcom_part*.docx"" /b").stdout.readall, vbCrLf)

For j = 0 To UBound(sn) - 1
With GetObject(sn(j))
For Each it In .tables
sp = Split(Replace(it.Range, Chr(7), ""), vbCr)
Next
Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(2).Resize(, UBound(sp) + 1) = sp
.Close 0
End With
Next
End Sub
AW: Word Tabellen auslesen
22.09.2023 16:49:07
snb
Amended:
Sub M_snb()

sn = Split(CreateObject("wscript.shell").exec("cmd /c dir ""N:\CAS\Leitung\BPA\GQM\QM\PFAS\rest_pfas_rcom_part*.docx"" /b").stdout.readall, vbCrLf)

For j = 0 To UBound(sn) - 1
With GetObject("N:\CAS\Leitung\BPA\GQM\QM\PFAS\" & sn(j))
For Each it In .tables
sp = Split(Replace(it.Range, Chr(7), ""), vbCr)
Next
Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(2).Resize(, UBound(sp) + 1) = sp
.Close 0
End With
Next
End Sub

Anzeige
AW: Word Tabellen auslesen
25.09.2023 08:24:51
Frank
Hallo snb,

sorry war am WE unterwegs.
Ein Beispiel kann ich leider nicht schicken.
Die Inhalte sind confidential.
Aber ich werde deinen Ansatz mal durchgehen und mich später melden

Gruß
Frank
AW: Word Tabellen auslesen
25.09.2023 09:41:33
Oberschlumpf
Hi,

du könntest bitte eine Word-BEISPIEL-Datei schicken, das bedeutet: Original-Daten durch BSP-Daten ersetzen.
Und es muss ja nicht alles drin sein, was im Original enthalten ist - wichtig ist nur, dass mind. so viel Bsp-Daten enthalten sind, wie erforderlich, um für dich eine Lösung erarbeiten zu können.

Ciao
AW: Word Tabellen auslesen
25.09.2023 10:19:51
Frank
Hallo Oberschlumpf,

ich hatte eine BSP-Datei erstellt.
Allerdings darf man das Dateiformat hier nicht hochladen.
Im Prinzip sind die Tabellen in Word so aufgebaut, dass in der 1.Spalte ein paar generelle Statements stehen, genau wie in der 2.Spalte.
Die 3.Spalte enthält dann mehrerer Zeilen und die müsste auch noch ausgelesen werden und in die gleiche Zeile in die Folgespalten von Excel überführt werden.


Gruß
Frank
Anzeige
AW: Word Tabellen auslesen
25.09.2023 10:32:45
Oberschlumpf
Hi Frank,

pack deine Bsp-Datei in eine ZIP-Datei und stell dann die ZIP-Datei per Upload hier zur Verfügung.

Ciao
Thorsten
AW: Word Tabellen auslesen
26.09.2023 09:21:44
Frank
Guten Morgen Zusammen,

hat vielleicht noch jemand eine Idee?

Vielen Dank

Frank
habe es gelöst owT
27.09.2023 14:24:29
Frank
Habe es gelöst
AW: Word Tabellen auslesen
25.09.2023 09:14:02
Frank
Hallo snb,

dein Code bricht mit dem Fehler "Objekt erforderlich" beim Übertrag nach Excel , ab.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige