Das Archiv des Excel-Forums
Inhalte von einer PDF suchen und den Text kopieren
Betrifft: Inhalte von einer PDF suchen und den Text kopieren
von: Steffen
Geschrieben am: 25.09.2019 08:54:52
Hallo zusammen,
ich möchte aus 100 PDFs etwas suchen und das Ergebnis in einer Excel Tabelle einfügen.
Momentan habe ich es so gelöst, allerdings nicht ganz optimal:
Sub PDFtoExcel()
Dim i As Integer, z As Long
Dim strCMDLine As String, strTXT As String
Dim FSO As Object, objSFold As Object, objWks As Object, WshShell As Object, tmp As Object
Dim colPFiles As New Collection, colTFiles As New Collection
Set WshShell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objSFold = FSO.GetFolder(ThisWorkbook.Path)
Set objWks = ThisWorkbook.Sheets(1) ' Ausgabe
strCMDLine = ThisWorkbook.Path & "\Tools\pdftotext.exe -raw -layout -nopgbrk "
Const strPrefix As String * 31 = "Name"
Const intSWLen = 20
For Each tmp In objSFold.Files ' alle Dateien einlesen
If Right(tmp.Path, 4) = ".pdf" Then colPFiles.Add tmp.Path ' nur *.pdf
Next tmp
For i = 1 To colPFiles.Count
WshShell.Run (strCMDLine & Chr(34) & colPFiles.Item(i) & Chr(34)), 0, True
' Kill colPFiles.Item(i) ' pdf-Files löschen
Next
For Each tmp In objSFold.Files ' wieder alles einlesen
If Right(tmp.Path, 4) = ".txt" Then colTFiles.Add tmp.Path ' nur *.txt
Next tmp
z = objWks.Cells(Rows.Count, 1).End(xlUp).Row + 1 ' letzte belegte Zeile ( _
Spalte A)
For i = 1 To colTFiles.Count
strTXT = FSO.OpenTextFile(colTFiles.Item(i)).ReadAll
objWks.Cells(z, 3) = colPFiles.Item(i) ' Dateiname in Spalte B
objWks.Cells(z, 4) = 1
While InStr(1, strTXT, strPrefix, vbTextCompare) > 0
strTXT = Mid(strTXT, InStr(1, strTXT, strPrefix) + Len(strPrefix) - 1)
objWks.Cells(z, 2) = Left(strTXT, intSWLen) ' Wert eintragen
z = z + 1
Wend
Kill colTFiles.Item(i) ' txt-Files löschen
Next
End Sub
Gibt es eine Möglichkeit, dass ich die Zellen in der PDF als Objekt verwenden kann und nicht als txt Datei umwandeln muss und mit Zeichen arbeiten?
Freue mich auf Hilfe von euch, hoffe es hat schon jemand so etwas gelöst!
Viele Grüße
Betrifft: AW: MS Word
von: Fennek
Geschrieben am: 25.09.2019 09:30:02
Hallo,
PDF's können so verschieden sein, dass ohne Beispiel nur allgemeine Aussagen möglich sind:
M$ Word (ab 2013) kann viele PDF in eine mit VBA auswertbare Form umwandeln, dies sollte zuerst getestet werden.
mfg
Betrifft: AW: MS Word
von: Steffen
Geschrieben am: 25.09.2019 10:22:12
Hallo Fennek,
danke für deine Rückmeldung.
Hier eine bsp. Datei die ich bereits von einer PDF in eine txt Datei konvertiert habe.
https://www.herber.de/bbs/user/132186.txt
Für mich ist nur die Herausforderung, dass die Zeichenabstände auf jeder PDF etwas anders sein können und ich hier eine Automatisation haben muss.
Am besten wäre, wenn ich pro Antwort von den Freunden ein Object hätte und das dann in ein Zelle in der Excel Tabelle schreiben kann.
Können Sie mir da weiterhelfen?
Wie meinten Sie das mit dem M$Word? Haben Sie da ein Beispiel?
mfg
Betrifft: AW: Beispiel PDF
von: Fennek
Geschrieben am: 25.09.2019 12:52:49
Hallo,
auch aus solchen txt-Dateien sollte man per VBA das Gesuchte auslesen können, aber direkt aus der PDF ist eigentlich sinnvoller.
Hoffentlich hast Du VBA-Grundkenntnisse.
mfg
Excel-Beispiele zum Thema "Inhalte von einer PDF suchen und den Text kopieren"
Einlesen von Zellinhalten in Variablen |
 |
Zellinhalte zeilenweise sortieren |
 |
Textprogramm starten und Inhalte von Zelle A1 eingeben |
 |
Wiederherstellung des alten Zellinhaltes bei unerlaubten Werten |
 |
Bereiche in Abhängigkeit eines Zellinhaltes drucken |
 |
Die tatsächliche Anzeige eines Zellinhaltes per VBA abrufen |
 |
Zellinhalte in Verbindung mit Variablen in Textdatei schreiben |
 |
Zellinhalte aus Einzelblättern in Deckblatt übertragen |
 |
Excel-Zellinhalte in Worddokument einlesen um per Email versenden |
 |
Zellinhalte über VBA verbinden |
 |
Zellinhalte vor dem Verbinden der Zellen zusammenfassen |
 |
In mehrere Spalten doppelte Inhalte entfernen |
 |
Blattinhalte dreier Blätter in neues Blatt kopieren |
 |
UserForm-TextBox-Inhalte mit Grafik-Hyperlinks einfügen |
 |
Zellinhalte in MultiPage-TextBoxes einlesen |
 |
Benennung und Aktivierung von CheckBoxes gem. Zellinhalten |
 |
Tabellenblattinhalte in getrennten Textdateien speichern |
 |
Schaltflächen gem. Tabelleninhalten anlegen und benennen. |
 |
In Namensliste TextBox-Inhalte suchen |
 |
Aufteilen mehrzeiliger Zellinhalte in UserForm-ListBox |
 |
Formate und Zellinhalte ausblenden |
 |
Textinhalte zusammenfügen |
 |
Zellinhalt suchen und Zelle auswählen |
 |
Suchbegriff über mehrere Tabellenblätter suchen. |
 |
Suchen und weitersuchen |
 |
Zahl +/- 1 suchen |
 |
Ein Zeichen in einer Formel suchen |
 |
Datum suchen und Wert eintragen |
 |
Wert in Tabelle suchen und in UserForm ausgeben |
 |
Letzte Zelle mit Inhalt suchen |
 |
Textdatei nach Begriff durchsuchen und Fundzeile importieren |
 |
Wert in Array suchen, ohne jedes Datenfeld abzufragen |
 |
Wert in Tabellenblatt suchen und alle Fundwerte in zweite Tabelle |
 |
Begriffe in ausgeblendeter Spalte suchen und Fundzeile markieren |
 |
Wert aus UserForm-TextBox in Tabelle suchen und in ListBox listen |
 |
Suchbegriff aus einer UserForm-Textbox in Tabelle suchen und melden |
 |
Suchwert in zweiter Tabelle suchen und Fundzeile eintragen |
 |
Suchen von Nachnamen in Zeichenfolgen |
 |
Dateien in einem Verzeichnis und Unterverzeichnissen suchen |
 |
Datum suchen und Adresse der Fundzelle ausgeben |
 |
Begriffe in zweiter Tabelle suchen und Werte anfügen |
 |
Text aus UserForm-TextBox in Tabelle suchen |
 |
Zweidimensionale Matrix mit der SVERWEIS-Funktion durchsuchen |
 |
Suchbegriff in vorhergehenden Tabellen suchen |
 |
Werte aus UserForm-ComboBox suchen und Fundstelle kopieren |
 |
Neueste Textdatei eines Verzeichnisses suchen und umbenennen |
 |
Artikelnummern suchen und jeweils letzte Fundstelle listen |
 |
Wörter eines Satzes in Indizliste suchen |
 |
Wert aus UserForm-TextBox suchen und Fundstelle kopieren |
 |
Zellwert nach Doppelklick in Tabelle suchen |
 |
Suchen in 2. Tabelle und Ersetzen der Quelldaten |
 |
Wert in Tabelle 2 suchen und Fundstellen übertragen |
 |
Suchbegriff in Tabelle suchen und Fundzeilen auswählen |
 |
Suchbegriffe aus Tabelle im Excel-WebArchiv suchen |
 |
Wert aus ComboBox in TextBox, dann in Tabelle suchen |
 |
Artikelnummer über InputBox suchen und eintragen |
 |
Anwendung auf Fesplatte suchen |
 |
Tabelle nach ComboBox-Auswahl durchsuchen |
 |
Werte suchen, eintragen und löschen |
 |
Zeile 1 nach Wert der aktiven Zelle durchsuchen |
 |
Suchbegriff in Tabelle suchen und Fundzeilenindex zurückgeben |
 |
Wert in zweiter Tabelle suchen und als Kommentar ausgeben |
 |
Wert in externer Mappe suchen und mit Format übernehmen. |
 |
Artikelnummern nach Kriterien suchen und Datensätze kopieren |
 |
Wert in ComboBox einlesen, suchen, editieren, ausgeben |
 |
Grafikdateien suchen |
 |
Suchen der Nachbarzelle der Zelle mit dem Maximalwert |
 |
Text in Textdateien suchen und Fundzeilen in Tabelle ausgeben |
 |
Begriff suchen und Fundzeilen in anderes Blatt kopieren |
 |
Zahl suchen und an den Fundstellen Zeile einfügen |
 |
Name und Vorname suchen, Werte und Fundstellen importieren |
 |
Begriff in der ersten Spalte einer ListBox suchen |
 |
Blätter in andere Arbeitsmappen kopieren |
 |
Module von Mappe zu Mappe kopieren |
 |
Arbeitsblatt 40 mal kopieren |
 |
Schriftgröße beim Kopieren verdoppeln |
 |
Beim Kopieren auch die Zeilenhöhe und Spaltenbreite übernehmen |
 |
Tabellencode nach Kopieren des Blattes löschen |
 |
Arbeitsmappe blitzschnell kopieren |
 |
VBE-Namen der Blattmodule beim Kopieren festlegen |
 |
Blattinhalt von einer zur anderen Arbeitsmappe kopieren |
 |
Formel bis zur letzten Zeile der Nebenspalte kopieren |
 |
Datei kopieren, wenn noch nicht vorhanden |
 |
Zeilenweise von Blatt zu Blatt kopieren |
 |
Erste Druckseite in eine neue Arbeitsmappe kopieren |
 |
Durch DoppelKlick Spalte in zweites Arbeitsblatt kopieren |
 |
Teilergebnisse einer Serie von Tabellen in anderes Blatt kopieren |
 |
Bei Eintrag in Spalte A aktuelle Zeile kopieren |
 |
Filtern und Kopieren |
 |
Zeile mit aktiver Zelle in anderes Blatt kopieren |
 |
Zeilen in Abhängigkeit des Wertes in Spalte A kopieren |
 |
Einen von einer Schlüsselziffer abhängigen Bereich kopieren |
 |
Vorgegebene Anzahl von Einträgen in 2. Blatt kopieren |
 |
Über InputBox festzulegenden Bereich kopieren |
 |
Passwortgeschützte Mappe öffnen, Daten kopieren, schliessen |
 |
Tabellenblatt kopieren und dreistellig fortlaufend numerieren |
 |
Jede zweite Zelle kopieren |
 |
Gruppe von Optionsfeldern kopieren und Makro zuweisen |
 |
Nicht zusammenhängenden Bereich in nächste Zeile kopieren |
 |
Nur sichtbare Zellen in anderes Arbeitsblatt kopieren |
 |
Zeile in Abhängigkeit zur Eingabe in Blätter kopieren |
 |
Werte prüfen und kopieren |
 |
Bei Eintrag von X Zeile in andere Tabelle kopieren |
 |
Daten kopieren wenn kein Datum oder Datum > Heute |
 |
Kopieren und Umbenennen eines Blattes |
 |
Nur Zeilen mit bestimmtem Inhalt kopieren |
 |
Bild in zweites Blatt an gleiche Position kopieren |
 |
Alle Zeilen ohne Wert in vorgegebener Spalte kopieren |
 |
Bei Eintrag Zeile in 2. Blatt kopieren und Tabellen sortieren |
 |
Bildergruppe in anderes Blatt kopieren |
 |
Bei Eingabe Formel in der Nebenspalte nach unten kopieren |
 |
Auswahl in andere Arbeitsmappe kopieren, speichern, schließen |
 |
Aktive Zeile kopieren und löschen |
 |
Datensätze, die öfter als 3 mal vorkommen, kopieren |
 |
Den jeweils darüberliegenden Wert in Leerzellen kopieren |
 |
Alle Zeilen mit einem Suchbegriff in nächstes Blatt kopieren |
 |
Dateien listen und Blätter in neue Arbeitsmappe kopieren |
 |