PDF Text aus bestimmten Bereich und die Seitenzahl in Excel schreiben
Mahlzeit,
Ich bin neu hier und bräuchte euren Rat. Ich möchte einen betimmten, immer wiederkehreneden Textbereich und die Seitennummer von der der Textberich stammt, in eine Excel Tabelle schreiben.
Ich bin ein VBA Neuling und auch sehr neugierig was man damit alles machen kann.
Ich habe im Formun nach einer Lösung gesucht und auch selber schon ein paar Codes ausprobiert. Aber leider bin ich jetzt an meiner Grenze angekommen -.-
Ich habe einen Code zusammengestellt, welcher mir die verschiedenen Dateinamen und die Anzahl der Seiten in eine Exceltabelle schreibt.
Ich wäre über jeden Tipp bzw. über jede Hilfestellung sehr dankbar.
Option Explicit
Option Compare Text
Sub PDFCounter()
Dim FilePath As String, FileMask As String, FileExt As String
Dim Column As Integer, Row As Long
Dim fso, rE, File, pdf, FileName As String
Dim Match, Pages As Long
FilePath = "C:\Test\Test_PDF2Excel"
FileMask = "*" 'genau hinsichtlich Groß-/Kleinschreibung
FileExt = "pdf" 'in Kleinbuchstaben
'In Tabelle1 Spaltenüberschriften erstellen
Dim lngRow As Long
lngRow = 1
With Tabelle1
With .Cells(lngRow, 1).Resize(1, 3)
.EntireColumn.Clear
.Value = Array("PDFDatei", "PDFSeite", "EFF")
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
End With
Column = 1 'Einträge in Spalte "A" ...
Row = 2 '... ab Zeile 2
Set fso = CreateObject("Scripting.FileSystemObject")
Set rE = CreateObject("VBScript.Regexp")
rE.Pattern = "/Count (\d*)" 'Sucbegriff = "/Count <Ziffer(n)>"
For Each File In fso.GetFolder(FilePath).Files 'alle Dateien des vorgegebenen Ordners durchgehen ...
FileName = File.Name
'.... und nur passende verarbeiten
If fso.GetBaseName(FileName) Like FileMask And LCase(fso.GetExtensionName(FileName)) = FileExt Then
Set pdf = fso.OpenTextFile(File.Path) 'Datei öffnen ...
Do Until pdf.AtEndOfStream '... und notfalls bis zum Dateiende durchgehen
For Each Match In rE.Execute(pdf.ReadLine) 'Zeile einlesen, durchsuchen und, wenn gefunden ....
Pages = CLng(Match.SubMatches(0)) '... Seitenzahl (<Ziffer(n)>) auslesen
Cells(Row, Column) = FileName 'Dateinamen eintragen
Cells(Row, Column + 1) = Pages 'Seitenzahl eintragen
Row = Row + 1 'Zeilennummer für Tabelle erhöhen
Exit Do 'Datei muss nicht weiter ausgelesen werden
Next
Loop
pdf.Close 'der Ordnung halber: Datei schließen
End If
Next
End Sub
Ich bin neu hier und bräuchte euren Rat. Ich möchte einen betimmten, immer wiederkehreneden Textbereich und die Seitennummer von der der Textberich stammt, in eine Excel Tabelle schreiben.
Ich bin ein VBA Neuling und auch sehr neugierig was man damit alles machen kann.
Ich habe im Formun nach einer Lösung gesucht und auch selber schon ein paar Codes ausprobiert. Aber leider bin ich jetzt an meiner Grenze angekommen -.-
Ich habe einen Code zusammengestellt, welcher mir die verschiedenen Dateinamen und die Anzahl der Seiten in eine Exceltabelle schreibt.
Ich wäre über jeden Tipp bzw. über jede Hilfestellung sehr dankbar.
Option Explicit
Option Compare Text
Sub PDFCounter()
Dim FilePath As String, FileMask As String, FileExt As String
Dim Column As Integer, Row As Long
Dim fso, rE, File, pdf, FileName As String
Dim Match, Pages As Long
FilePath = "C:\Test\Test_PDF2Excel"
FileMask = "*" 'genau hinsichtlich Groß-/Kleinschreibung
FileExt = "pdf" 'in Kleinbuchstaben
'In Tabelle1 Spaltenüberschriften erstellen
Dim lngRow As Long
lngRow = 1
With Tabelle1
With .Cells(lngRow, 1).Resize(1, 3)
.EntireColumn.Clear
.Value = Array("PDFDatei", "PDFSeite", "EFF")
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
End With
Column = 1 'Einträge in Spalte "A" ...
Row = 2 '... ab Zeile 2
Set fso = CreateObject("Scripting.FileSystemObject")
Set rE = CreateObject("VBScript.Regexp")
rE.Pattern = "/Count (\d*)" 'Sucbegriff = "/Count <Ziffer(n)>"
For Each File In fso.GetFolder(FilePath).Files 'alle Dateien des vorgegebenen Ordners durchgehen ...
FileName = File.Name
'.... und nur passende verarbeiten
If fso.GetBaseName(FileName) Like FileMask And LCase(fso.GetExtensionName(FileName)) = FileExt Then
Set pdf = fso.OpenTextFile(File.Path) 'Datei öffnen ...
Do Until pdf.AtEndOfStream '... und notfalls bis zum Dateiende durchgehen
For Each Match In rE.Execute(pdf.ReadLine) 'Zeile einlesen, durchsuchen und, wenn gefunden ....
Pages = CLng(Match.SubMatches(0)) '... Seitenzahl (<Ziffer(n)>) auslesen
Cells(Row, Column) = FileName 'Dateinamen eintragen
Cells(Row, Column + 1) = Pages 'Seitenzahl eintragen
Row = Row + 1 'Zeilennummer für Tabelle erhöhen
Exit Do 'Datei muss nicht weiter ausgelesen werden
Next
Loop
pdf.Close 'der Ordnung halber: Datei schließen
End If
Next
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 359898
Url: https://administrator.de/forum/pdf-text-aus-bestimmten-bereich-und-die-seitenzahl-in-excel-schreiben-359898.html
Ausgedruckt am: 22.04.2025 um 03:04 Uhr