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

Daten aus PDF Text extrahieren

Daten aus PDF Text extrahieren
25.01.2022 22:31:36
Kosinus
Guten Abend,
ich habe mehrere PDF Dokumente mit gleichem Aufbau, in denen Daten enthalten sind, die ich gerne in Excel importieren möchte. Die relevanten Textpassagen sehen so aus.
Daten1: [Name] | Daten2: [Zahl (1-4 stellig)] | Daten3: [Zahl (1-4 stellig)] | irrelevanter Text
Daten4: [Zahl (1-4 stellig)] | Daten5: [Zahl (1-4 stellig)] | Daten6: [Zahl (1-4 stellig)] | Daten7: [Zahl (1-4 stellig)] |
Daten8: [Zahl im Format z.zz] | Daten9: [Zahl im Format zzzzz.zz] | Daten10: [Zahl (1-4 stellig)] |
Daten11: [Zahl (1-4 stellig)] | Daten12: [Zahl (1-4 stellig)] | Daten13: [Zahl (1-4 stellig)]
Durch Copy&Paste bekomme ich die Daten in Excel eingefügt, sodass jeweils nach dem | der Inhalt in eine neue Zelle eingefügt wird, siehe hier: https://www.herber.de/bbs/user/150664.xlsx
Mein Ziel ist es nun eine Automatisierung hinzubekommen, sodass mit möglichst wenigen Schritten eine Tabelle befüllt werden kann mit den Daten.
Ich habe nach dem Kopieren der Daten in Excel versucht mit der Formel =RECHTS(A1;SUCHEN(":";A1)) die Daten herauszuholen, das funktioniert aber nicht, auch nicht mit =RECHTS(A1;SUCHEN(":";A1)-x) [verschiedene Zahlen statt "x" versucht], da dort dann häufig noch der Text nach bzw. vor dem ":" angezeigt wird.
Habt ihr Tipps für mich, wie ich da am besten vorgehen kann?

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus PDF Text extrahieren
26.01.2022 08:22:17
Oli
Hast Du es mal über das Daten-Menü probiert? Was passiert, wenn Du über Daten abrufen, aus Datei, aus PDF-Datei gehst. Dann werden Deine Daten im PowerQuery-Editor angezeigt und Du kannst es umformatieren.
Grüße
Oli
AW: Daten aus PDF Text extrahieren
26.01.2022 12:30:55
Kosinus
Über den PowerQuery-Editor komme ich erstmal nur so weit die Zellen einzufügen, aber nicht die Zahlen korrekt herauszulesen. Problem ist ja, dass in einer Zelle sowohl Text als auch Zahlen stehen, ich aber die Zahlen nach dem ":" benötige.
AW: Daten aus PDF Text extrahieren
26.01.2022 14:03:12
Oli
Wenn es immer nur eine begrenzte Zahl ist, geht es über finden (guck anbei).
https://www.herber.de/bbs/user/150685.xlsx
Anzeige
AW: Daten aus PDF Text extrahieren
26.01.2022 15:05:53
Dieter
Hallo Kosinus,
ich schlage das folgende VBA-Programm zur Lösung des Problems vor.
Das Programm geht von den beiden Tabellenblättern "Quelle" und "Ziel" aus.
Im Blatt "Quelle" stehen die aus dem PDF kopierten Daten, in "Ziel" erscheint das Ergebnis, jeweils in der nächsten freien Zeile.

Sub Umsetzen()
Dim letzteSpalteQ As Long
Dim letzteZeileQ As Long
Dim letzteZeileZ As Long
Dim nr As Long
Dim posDP As Long  ' Position des Doppelpunktes
Dim spalteQ As Long
Dim wert As String
Dim wsQ As Worksheet
Dim wsZ As Worksheet
Dim strNr As String
Dim zeileQ As Long
Dim zeileZ As Long
Dim zf As String
Set wsZ = ThisWorkbook.Worksheets("Ziel")
letzteZeileZ = wsZ.Cells(wsZ.Rows.Count, "A").End(xlUp).Row
zeileZ = letzteZeileZ + 1
Set wsQ = ThisWorkbook.Worksheets("Quelle")
letzteZeileQ = wsQ.Cells(wsQ.Rows.Count, "A").End(xlUp).Row
For zeileQ = 1 To letzteZeileQ
letzteSpalteQ = wsQ.Cells(zeileQ, wsQ.Columns.Count).End(xlToLeft).Column
For spalteQ = 1 To letzteSpalteQ
zf = Trim$(wsQ.Cells(zeileQ, spalteQ))
If Left$(zf, 5) = "Daten" Then
posDP = InStr(zf, ":")
If posDP = 7 Or posDP = 8 Then
strNr = Mid$(zf, 6, posDP - 6)
If IsNumeric(strNr) Then
nr = CLng(strNr)
wert = Trim$(Right$(zf, Len(zf) - posDP))
wsZ.Cells(zeileZ, nr) = wert
End If
End If
End If
Next spalteQ
Next zeileQ
wsZ.Activate
End Sub
https://www.herber.de/bbs/user/150686.xlsm
Viele Grüße
Dieter
Anzeige
AW: Daten aus PDF Text extrahieren
29.01.2022 20:38:13
Kosinus
Vielen Dank, das funktioniert super - wenn man die Tabellenüberschriften (also Daten1, Daten2 etc. so lässt). Wenn ich aber statt "Daten1", "Daten 2"... nun "Ort", "Name", "Gehalt" oder was anderes als Überschriften einfügen möchte, geht das natürlich nicht - ich war da nicht präzise genug in meinem Post.
https://www.herber.de/bbs/user/150758.xlsx
Hat jemand einen Tipp oder Lösung?
AW: Daten aus PDF Text extrahieren
30.01.2022 11:28:19
Dieter
Hallo Kosinus,
das lässt sich auch machen. Die Reihenfolge der Kategorien im Blatt "Quelle" kann dabei beliebig sein, es können auch einzelne fehlen.
Das Programm könnte dann z.B. so aussehen:

Sub Umsetzen()
Dim letzteSpalteQ As Long
Dim letzteZeileQ As Long
Dim letzteZeileZ As Long
Dim posDP As Long  ' Position des Doppelpunktes
Dim spalteQ As Long
Dim spalteZ As Long
Dim strKategorie As String
Dim suchErgebnis As Range
Dim wert As String
Dim wsQ As Worksheet
Dim wsZ As Worksheet
Dim zeileQ As Long
Dim zeileZ As Long
Dim zf As String
Set wsZ = ThisWorkbook.Worksheets("Ziel")
letzteZeileZ = wsZ.Cells(wsZ.Rows.Count, "A").End(xlUp).Row
zeileZ = letzteZeileZ + 1
Set wsQ = ThisWorkbook.Worksheets("Quelle")
letzteZeileQ = wsQ.Cells(wsQ.Rows.Count, "A").End(xlUp).Row
For zeileQ = 1 To letzteZeileQ
letzteSpalteQ = wsQ.Cells(zeileQ, wsQ.Columns.Count).End(xlToLeft).Column
For spalteQ = 1 To letzteSpalteQ
zf = Trim$(wsQ.Cells(zeileQ, spalteQ))
posDP = InStr(zf, ":")
If posDP > 0 Then
strKategorie = Left$(zf, posDP - 1)
If Len(strKategorie) > 0 Then
Set suchErgebnis = wsZ.Rows(1).Find(What:=strKategorie, _
LookIn:=xlValues, _
LookAt:=xlWhole)
If Not suchErgebnis Is Nothing Then
spalteZ = suchErgebnis.Column
wert = Trim$(Right$(zf, Len(zf) - posDP))
wsZ.Cells(zeileZ, spalteZ) = wert
End If
End If
End If
Next spalteQ
Next zeileQ
wsZ.Activate
End Sub
https://www.herber.de/bbs/user/150763.xlsm
Viele Grüße
Dieter
Anzeige
AW: Daten aus PDF Text extrahieren
31.01.2022 21:33:24
Kosinus
Vielen herzlichen Dank!!! Das spart mir wahnsinnig viel Arbeit - großes Dankeschön!

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige