vbabeginner
Goto Top

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
ergebnisexcel
vorlagepdf

Content-Key: 359898

Url: https://administrator.de/contentid/359898

Printed on: April 24, 2024 at 23:04 o'clock