Inkassorechnungen, Mahnbescheide per OCR scannen und in vordefinierte Spalten von Excel per VBA eintragen
Hallo zusammen,
ich möchte die eingehenden Inkassorechnungen, Mahnbescheide u.ä. unserer Mandaten per OCR scannen und in eine Excel Liste automatisiert eintragen. Ich habe mir gedacht, dass dieses per VBA geschehen könnte. Aber irgendwie komme ich dabei nicht zurecht. Wenn mir hier jemand helfen könnte, wäre ich sehr dankbar.
Ich habe mal ein Screenshot der Liste mit angehängt. Es würde Arbeit ersparen, weil Mandanten zum Teil sehr viele Gläubiger haben.
ich möchte die eingehenden Inkassorechnungen, Mahnbescheide u.ä. unserer Mandaten per OCR scannen und in eine Excel Liste automatisiert eintragen. Ich habe mir gedacht, dass dieses per VBA geschehen könnte. Aber irgendwie komme ich dabei nicht zurecht. Wenn mir hier jemand helfen könnte, wäre ich sehr dankbar.
Ich habe mal ein Screenshot der Liste mit angehängt. Es würde Arbeit ersparen, weil Mandanten zum Teil sehr viele Gläubiger haben.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 524251
Url: https://administrator.de/forum/inkassorechnungen-mahnbescheide-per-ocr-scannen-und-in-vordefinierte-spalten-von-excel-per-vba-eintragen-524251.html
Ausgedruckt am: 10.04.2025 um 06:04 Uhr
10 Kommentare
Neuester Kommentar
Stichwort: iTextSharp
Hier im Forum gibt es schon einige Einträge dazu wie man Einträge aus PDFs ausliest.
z.B. für Mails (von Colinardo super beschrieben)
Skript zum Auslesen und Automatischen Versenden von E-Mails
Ist aber Powershell. ^^
VG
Hier im Forum gibt es schon einige Einträge dazu wie man Einträge aus PDFs ausliest.
z.B. für Mails (von Colinardo super beschrieben)
Skript zum Auslesen und Automatischen Versenden von E-Mails
Ist aber Powershell. ^^
VG

Moin.
Wenn das jeweilige PDF also nicht bereits den Text enthält sondern nur Bildmaterial kannst du das damit knicken.
Gerade bei solch sensiblen Dokumenten ist OCR eine gefährliche Sache. Stimmt da nur ein Zeichen bei einer Nummer nicht 100% gibt das schnell Chaos. Wenn das niemand nachträglich sichtet.
Eine von vielen Varianten findest du bswp. hier:
https://docsumo.com/
See ya.
Zitat von @isophoron:
Wir haben nur Adobe Acrobat DC, sonst noch keine OCR Software.
Ich glaube, die kann man per Script ansteuern.
Die OCR Funktion ist da eine rühmliche Ausnahme, die ist über die Acrobat API nicht mehr ansprechbar.Wir haben nur Adobe Acrobat DC, sonst noch keine OCR Software.
Ich glaube, die kann man per Script ansteuern.
Wenn das jeweilige PDF also nicht bereits den Text enthält sondern nur Bildmaterial kannst du das damit knicken.
Gerade bei solch sensiblen Dokumenten ist OCR eine gefährliche Sache. Stimmt da nur ein Zeichen bei einer Nummer nicht 100% gibt das schnell Chaos. Wenn das niemand nachträglich sichtet.
Eine von vielen Varianten findest du bswp. hier:
https://docsumo.com/
See ya.
Ich wage zu bezweifeln -anhand der gegebenen Informationen-, dass das lösbar ist.
Gründe:
Es gibt Produkte, um hier ggf. Abhilfe zu schaffen:
https://www.enfocus.com wenn Du viel, sehr viel Geld hast, aber z.B. Adobe acrobat automatisieren willst.
https://www.kofax.de/sitecore/content/German/products/controlsuite/autos ... wenn Du billiger wegkommen willst.
Die Produkte von EnFocus kenne ich nur vom Namen her. Es heißt, die seien der Mercedes der Dokumentenautomatisierung.
Den Autostore setze ich in der Express-Edition ein. Er kann in Dokumenten suchen, die Suchergebnisse in Variablen übergeben und diese können über Scripte in XLS-Dateien oder ggf. direkt in Datenbanken geladen werden.
Gründe:
- Inkassorechnungen und Mahnbescheide müssten einheitlich aufgebaut sein, so dass in bestimmten Zonen eines Dokuments zu erwartende Werte zu finden sind.
- OCR ist fehleranfällig. Die Dokumentqualität ist maßgeblich entscheidend, ob wie hoch der Grad der Fehler ist.
- Die Durchsuchbarmachung ist abhängig von der gewählten Engine. Es gibt Engines, die zeilenweise ein Dokument aufbrechen, andere können es auch zusätzlich in Spalten unterteilen, so dass Abschnitte entstehen. Worauf ich hinaus will: In Abhängigkeit zur OCR-Engine und dem Ergebnis wird es fraglich sein, gesuchte Zeichenfolgen korrekt zu identifizieren.
Es gibt Produkte, um hier ggf. Abhilfe zu schaffen:
https://www.enfocus.com wenn Du viel, sehr viel Geld hast, aber z.B. Adobe acrobat automatisieren willst.
https://www.kofax.de/sitecore/content/German/products/controlsuite/autos ... wenn Du billiger wegkommen willst.
Die Produkte von EnFocus kenne ich nur vom Namen her. Es heißt, die seien der Mercedes der Dokumentenautomatisierung.
Den Autostore setze ich in der Express-Edition ein. Er kann in Dokumenten suchen, die Suchergebnisse in Variablen übergeben und diese können über Scripte in XLS-Dateien oder ggf. direkt in Datenbanken geladen werden.
Bei uns haben wir eine lösung, die nennt sich abtippkraft in der buchhaltung :D
Um das Maschinell zu machen, gibts zahlreiche Schwierigkeiten, die hier bereits erwähnt wurden.
tl;dr
100% verlässliche Lösungen gibt es nicht, schon gar nicht "ich hacke mal was an einem Nachmittag" - aber tendenziell ist es eine lösbare Aufgabe
An sich ist es so: Da OCR unzuverlässig ist und jede Rechnung / Mahnung anders aussieht, braucht das Programm einiges an Intelligenz. Als Ausganspunkt würde ich tesseract-ocr nehmen, denn dieser liefert im Ursprungzustand schon ganz gute ergebnisse.
Ich habe mir letztes Jahr ein kleines Tool geschrieben das zumindest bei Scans erkennt ob es eine Rechnung/Lieferschein/Angebot ist und den Lieferanten aus einer vorgefertigten Liste erkennt + unsere eigene Referenznummer extrahiert. Das ist der Tricky part, da zu hier u.a. eine Logik integrieren musst die mit Wahrscheinlichkeiten hantiert (z.B. das Wort "Rechnung" ist in Fett + Schriftgrad >12 steht bei knapp 1/3 der Länge des dokuments, während das Wort lieferschein in kleinen Schrift eher mitten im Dokument steht = höchtwahrscheinlich eine Rechnung die sich auf einen Lieferschein bezieht).
Ich bin mir bis heute nicht sicher ob eher ausgefallene RegExs oder Levenshtein Distanz zum Erfolg führt - alles was ich so gehackt habe ist immer nur maximal 90% zuverlässig - also weit weg vor einem produktivprodukt für die Buchhaltung.
Das schöne ist aber das z.B. tesseract eine mashine learning api hat - d.h. dem kannst auch was beibringen. Ebenso dein Programm sollte mit etwas lernen besser werden (da die Rechnungen z.B. immer gleich aussehen und man z.B. die von der buchhaltung bearbeiten lassen kann um Materiall fürs MashineLearning zu haben - aber brauchst verdammt viele Rechnungen).
Die Schritte im Einzelnen:
1. In möglichs hoher Qualität scanen (600dpi und höher, der computer freut sich immer über höhere Auflösungen)
2. den Scan vor dem OCS Prozess aufbereiten (hier gibts einen Schönen Artikel dazu: https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality)
3. Dann kannst du es mit tesseract scannen und am besten als structurierte "hocr" ausgeben
4. Die hocs kannst du selber behacken oder auf vorhandene tools setzen (z.B. hier https://github.com/tmbdev/hocr-tools) - auf jeden Fall ist das der Schritt bei dem man programmatisch die Werte nun ausliest und und die Excel einträgt.
5. Du bist der Held weil du so eine geile Software geschrieben hast
oder
Du könntest auch warten bis sich XRechnung durchsetzt, da kann man schön strukturiert alle Felder aus der XML auslesen (mehr dazu: https://ecosio.com/de/blog/was-ist-das-xrechnung-format/)
MFG N-Dude
Um das Maschinell zu machen, gibts zahlreiche Schwierigkeiten, die hier bereits erwähnt wurden.
tl;dr
100% verlässliche Lösungen gibt es nicht, schon gar nicht "ich hacke mal was an einem Nachmittag" - aber tendenziell ist es eine lösbare Aufgabe
An sich ist es so: Da OCR unzuverlässig ist und jede Rechnung / Mahnung anders aussieht, braucht das Programm einiges an Intelligenz. Als Ausganspunkt würde ich tesseract-ocr nehmen, denn dieser liefert im Ursprungzustand schon ganz gute ergebnisse.
Ich habe mir letztes Jahr ein kleines Tool geschrieben das zumindest bei Scans erkennt ob es eine Rechnung/Lieferschein/Angebot ist und den Lieferanten aus einer vorgefertigten Liste erkennt + unsere eigene Referenznummer extrahiert. Das ist der Tricky part, da zu hier u.a. eine Logik integrieren musst die mit Wahrscheinlichkeiten hantiert (z.B. das Wort "Rechnung" ist in Fett + Schriftgrad >12 steht bei knapp 1/3 der Länge des dokuments, während das Wort lieferschein in kleinen Schrift eher mitten im Dokument steht = höchtwahrscheinlich eine Rechnung die sich auf einen Lieferschein bezieht).
Ich bin mir bis heute nicht sicher ob eher ausgefallene RegExs oder Levenshtein Distanz zum Erfolg führt - alles was ich so gehackt habe ist immer nur maximal 90% zuverlässig - also weit weg vor einem produktivprodukt für die Buchhaltung.
Das schöne ist aber das z.B. tesseract eine mashine learning api hat - d.h. dem kannst auch was beibringen. Ebenso dein Programm sollte mit etwas lernen besser werden (da die Rechnungen z.B. immer gleich aussehen und man z.B. die von der buchhaltung bearbeiten lassen kann um Materiall fürs MashineLearning zu haben - aber brauchst verdammt viele Rechnungen).
Die Schritte im Einzelnen:
1. In möglichs hoher Qualität scanen (600dpi und höher, der computer freut sich immer über höhere Auflösungen)
2. den Scan vor dem OCS Prozess aufbereiten (hier gibts einen Schönen Artikel dazu: https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality)
3. Dann kannst du es mit tesseract scannen und am besten als structurierte "hocr" ausgeben
4. Die hocs kannst du selber behacken oder auf vorhandene tools setzen (z.B. hier https://github.com/tmbdev/hocr-tools) - auf jeden Fall ist das der Schritt bei dem man programmatisch die Werte nun ausliest und und die Excel einträgt.
5. Du bist der Held weil du so eine geile Software geschrieben hast
oder
Du könntest auch warten bis sich XRechnung durchsetzt, da kann man schön strukturiert alle Felder aus der XML auslesen (mehr dazu: https://ecosio.com/de/blog/was-ist-das-xrechnung-format/)
MFG N-Dude
Moin,
wenn Du Dich mal mit dem Thema etwas mehr beschäftigen möchtest kann ich Dir für den Einstieg ELO Office und den ELO Connector (jetzt Scan&Archive) empfehlen. Der ELO Connector ist eine vollwertige Formularerkennung/Zonenextration und ist in der kostenlos verfügbaren Testversion von ELO Office enthalten.
https://elooffice.elo.com/blog/wp-content/uploads/2014/03/Connector-1.pd ...
http://www.allesinordnung.de/fileadmin/user_upload/dokumente/LprobBuchE ...
Gruß
Dirk
PS: Mit etwas vbs-Skripting lässt sich der ELO Connecor auch im Rahmen eigener Projekte nutzen.
Ich habe mit dem ELO Konnektor eine automatische Verarbeitung von Abliefernachweisen der von uns genutzten Logistiker für meinen alten Arbeitgeber gebaut. Damit wurden mehrere hundert Dokumente im Monat automatisch verarbeitet und Indexdaten die ausgelesen.
wenn Du Dich mal mit dem Thema etwas mehr beschäftigen möchtest kann ich Dir für den Einstieg ELO Office und den ELO Connector (jetzt Scan&Archive) empfehlen. Der ELO Connector ist eine vollwertige Formularerkennung/Zonenextration und ist in der kostenlos verfügbaren Testversion von ELO Office enthalten.
https://elooffice.elo.com/blog/wp-content/uploads/2014/03/Connector-1.pd ...
http://www.allesinordnung.de/fileadmin/user_upload/dokumente/LprobBuchE ...
Gruß
Dirk
PS: Mit etwas vbs-Skripting lässt sich der ELO Connecor auch im Rahmen eigener Projekte nutzen.
Ich habe mit dem ELO Konnektor eine automatische Verarbeitung von Abliefernachweisen der von uns genutzten Logistiker für meinen alten Arbeitgeber gebaut. Damit wurden mehrere hundert Dokumente im Monat automatisch verarbeitet und Indexdaten die ausgelesen.