7.3k Aufrufe
Gefragt in Tabellenkalkulation von woenni Einsteiger_in (75 Punkte)
Ich habe eine Kontenbewertung vorzunehmen. Dazu liegen mir einige 100 Datenblätter in PDF Dateien vor. Um in einem sehr engen Zeitrahmen eine fundierte Analyse incl. Bewertung der Daten durchführen zu können, möchte ich die Daten in eine Excel Tabelle mit einer klaren Datenstruktur in Zeilen und Spalten überführen. Hierzu habe ich versucht die PDF Daten mit diversen Konvertern auch von namhaften Herstellern zu konvertieren. Die Ergebnisse sind ernüchternd, insbesondere was die Excelergebnisse betrifft. Hier erhalte ich verschachtelte Tabellen, Die (gleichen) Datentypen unterschiedlich formatiert (mal rechts- mal linksbündig) usw. Das besten Ergebnis erhalte ich bei der Konvertierung nach Word 2007. Da habe ich ordentliche Kontenblätter. Mein Problem wäre gelöst, wenn ich diese klar strukturiert, automatisiert nach Excel übernehmen könnte. Dazu habe ich das ganze Word Dokument (alle Kontenblätter) markiert und in Excel eingefügt. Mit dem Ergebnis könnte ich ggf. etwas anfangen, weil ich die vielen Leerzeilen ggf. mit einem Makro loswerden könnte. Schlimmer ist aber, daß ich nun in Excel sog. Textboxen habe, die a) oft Zelleninhalte überlagern. ich kann diese dann wegschieben und so den Inhalt der Zellen darunter in Augenschein nehmen. b) ich weiß aber nicht wie ich den Inhalt der Textboxen klar strukturiert in entsprechende Spalten bekomme.

Mein nächster Versuch, die Daten aus der Worddatei zu kopieren und einzufügen brachte die gewünschte Struktur ist aber zu aufwndig, weil ich nicht weiß, wie man das automatisiern kann Also im Grunde in Excvel Zellen oder Bereichsweise die Daten aus der Word Datei kopieren und in Excel spaltengerecht einfügen.

Gibt es jemand, der mir aus diesem Dilemma helfen kann?

mfg Wönni

19 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

wie hast du den die kopierten WORD Daten in Excel eingefügt? Einfach per einfügen (STRG V) oder über Start - Einfügen - Inhalte einfügen - Text?

Gggf. probier mal die letzte Variante.

Oder du speicherst deine WORD Datei als TXT-Datei und importierst diese in EXCEL (Daten - Aus Text).

Am einfachsten wäre es natürlich, die Grundlage würde nicht als PDF-Datei vorliegen sondern in einem Format, das einfacher in Excel importiert werden könnte :-).

Gruß

M.O.
0 Punkte
Beantwortet von conny77a Mitglied (521 Punkte)
Adobe Acrobat Pro kann das (nicht der Reader!)

www.adobe.com/de/products/acrobat/pdf-to-excel-xlsx-converter.edu.html
0 Punkte
Beantwortet von woenni Einsteiger_in (75 Punkte)
Hallo M.O.

Danke für Deine Antwort. Auch nach "Kopieren und Inhalt Einfügen", wie Du beschrieben hast, erhalte ich kein brauchbares Tabellenblatt. Ich habe es mit "Text" und "Unicode Text" versucht.Das Ergebnis stellt sich wie folgt dar: Die Daten aus dem Kontoblatt erscheinen etwa so:

KtoNr. fehlt Grundstücke Bezeichnung unvollständig
3 Leerzeilen
EB-Wert Soll alt Haben alt Saldo alt
1.468.040,00 0 0 1.468.040,00
46 Leerzeilen
Nun folgt die Überschrift über den Buchuingen
Pe BA Beleg vom Gegenkto. Bezeichnung Buchungstext
Hier müßten 3 Buchungszeilen stehen. Sie folgen etwa 200 Zeilen weiter unten
Soll Haben lfd.Saldo Journ. St. KostenSt.
EB-Wert Soll neu Haben neu Saldo neu
1.468.040,00 0 720.376,80 747.663,20

Die Überschriften und Werte sind verschoben.Die (Word-) Kontoblätter mit den vollständigen Daten kann man als importierte (Text-) Objekte bearbeiten. Ich weiß nicht, wie man sie gezielt aufruft. Es ist schwer das Chaos genau zu beschreiben. Tatsache ist ich kriege die Daten nicht Zeilenweise und spaltengerecht nach Excel. Ich hätte es auch gerne so wie in Deinem Schlußsatz :) aber leider ist das unmöglich.
Bis jetzt die sauberste Methode die ich herausgefunden war aus Excel auf das Word Kontoblatt, die Daten gruppenweise kopieren und spaltengerecht in Excel einfügen. Das sind je Kontoblatt 2- 3 Markierungs und Copy-/Paste Vorgänge, die man in einem Makro automatisieren müßte. Aber ich weiß nicht, ob das überhaupt machbar ist.
Gibt es außer der Aufgabe einen Weg aus dem Chaos?
Ich freue mich über jede Unterstüzung und danke auf jeden Fall schon jedem, der das bis hierher gelesen hat.

mfg Wönni
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Wönni,

welche Zeilen sollen denn aus WORD nach Excel kopiert werden?
Wenn man z.B. die EB-Zeile und die folgende Zeile kopieren müsste, könnte man dies sicher über Makro lösen. Es müsste eben ein nachvollziehbares Muster vorliegen.

Gruß

M.O.
0 Punkte
Beantwortet von woenni Einsteiger_in (75 Punkte)
Hallo M.O.,
die Kontoblätter in Word sehen vordergründig vollständig, korrekt und brauchbar aus. Wennich mit Strg A alles markiere, mit Strg C kopiere und mit Strg V im Exceltabellenblatt einfüge erhalte ich das versuchsweise geschilderte Chaos. Im Unterschied zu Inhalte Einfügen, Text muß ich hier die Zeilen noch formatiern mit 1. Ausrichtung Zeilenumbruch anhaken 2. gleich wieder abhaken, um die beinhalteten SaldoDaten alt und neu lesen zu können (vorher stehen statt Ziffern nur #). Wenn ich Deinem Vorschlag folgend mit Inhalte einfügen arbeite, erhalte ich die (gleichen) Zahlenwerte direkt und korrekt formatiert. Die Buchungsdaten zwischen Eröffnungssaldo und Schlußsaldo fehlen in jedem Fall vollständig.

Ich würde Dir gerne eine Kopie / Hardcopy des Kontoblattes zukommen lassen. Ich weiß aber nicht wie ich das machen soll bzw. wie ich hier eine Anlage machen kann.

Zur Aussage oben von Conny77a: Ich habe die Konvertierung mit Adobe Acrobat Pro gemacht. Diese liegt dieser Problemstellung final zu Grunde, d.h. die genannten Excel, Word.doc word.rtf und word.txt Dateien sind Ergebnisse meiner diversen Testläufe mit diesem Konverter. Trotzdem vielen Dank für Deinen Hinweis.

mfg Wönni
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Wönni,

du kannst eine Beispiel z.B. hier hochladen und den Download-Link dann hier posten.

Gruß

M.O.
0 Punkte
Beantwortet von woenni Einsteiger_in (75 Punkte)
Hallo Conny77a,

angeschoben durch Deinen Hinweis habe ich nochmal in dem Adobe Acrobat Pro Converter gestöbert und eine Funktion gefunden die mir ein Stück weiterhilt. Es gibt die Möglichkeit im PDF die Daten zu bearbeiten, zu markieren und nach Excel zu kopieren. Da erhalte ich eine ganz brauchbare Datenstruktur, die nur wenige Fallstricke beinhaltet, weil eben mal mehr mal weniger Felder (wenn diese leer bzw 0 sind) enthalten.

Hallo auch M.O.
Ich habe ein Muster der erhaltenen Daten sowie der gewünschten Datenstruktur gerade hochgeladen. Der Link hierfür ist:

http://www.file-upload.net/download-8041054/Konten-aus-PDF-kopiert.xlsm.html

Mir fallen die Augen zu! Gute Nacht Vielleicht und hoffentlich bis später
Wönni
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Wönni,

ich habe mal ein Makro gebastelt. Das Problem ist, dass auch in den Buchungsbeschreibungen Leerzeichen enthalten sind. Auch wird das Buchungsdatum in eine Kommazahl umgewandelt (da habe ich noch keine Lösung gefunden). Du müsstest also noch mal drüberschauen.
Aber vielleicht hilft es dir ja schon etwas weiter.
Das Makro gehört in ein Standardmodul.
Es kopiert die von dir benötigten Zeilen in ein neues Arbeitblatt und trennt die Sätze am Leerzeichen.

Sub aufteilen()

Dim ws As Worksheet
Dim bExists, bs As Boolean
Dim exText As Variant
Dim zeile, lzeile, i, ezeile As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

'Prüfen ob Blatt aufgeteilt existiert
' Alle vorhandenen Arbeitsblätter durchlaufen
For Each ws In Worksheets
If ws.Name = "aufgeteilt" Then
bExists = True: Exit For
End If
Next

'Falls nein, wird das Arbeitsblatt angelegt
If bExists = False Then
'Neues Blatt wird am Ende eingefügt
Worksheets.Add After:=Worksheets(Worksheets.Count)
'Neues Blatt benennen
ActiveSheet.Name = "aufgeteilt"
End If

'letzte Zeile auf dem aktuellen Blatt ermitteln
lzeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

'letzte Zeile auf dem Blatt aufgeteilt ermitteln und um 1 erhöhen
ezeile = Sheets("aufgeteilt").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1

'Schleife um nur die benötigten Daten aufgeteilt in das Blatt aufgeteilt zu schreiben
For zeile = 1 To lzeile

'Falls Zeile mit EB-Wert Soll alt anfängt, Marker für Buchungssätze auf wahr stellen
If Left(ActiveSheet.Cells(zeile, 1), 16) = "EB-Wert Soll alt" Then bs = True

'Datensätze aufteilen, falls bs wahr ist
If bs = True Then

'Falls Marker wahr ist, wird Zeile aufgeteilt in Blatt aufgeteilt geschrieben
'Text aufteilen
exText = Split(ActiveSheet.Cells(zeile, 1), " ")
'aufgeteilten Text in Blatt aufgeteilt in einzelne Zellen schreiben
For i = 0 To UBound(exText)
Sheets("aufgeteilt").Cells(ezeile, i + 1) = exText(i)
'als Text vorhandene Zahlen in Zahlen umwandeln
If IsNumeric(Sheets("aufgeteilt").Cells(ezeile, i + 1)) = True Then
Sheets("aufgeteilt").Cells(ezeile, i + 1) = CDbl(Sheets("aufgeteilt").Cells(ezeile, i + 1))
Sheets("aufgeteilt").Cells(ezeile, i + 1).NumberFormat = "#,##0.00"
End If
Next i
ezeile = ezeile + 1

End If

'Falls Zeile mit EB-Wert Soll neu anfängt, Marker für Buchungssätze auf falsch stellen und nächste Zeile aufteilen
If Left(ActiveSheet.Cells(zeile, 1), 16) = "EB-Wert Soll neu" Then
bs = False
ds = False
exText = Split(ActiveSheet.Cells(zeile + 1, 1), " ")
'aufgeteilten Text in Blatt aufgeteilt in einzelne Zellen schreiben
For i = 0 To UBound(exText)
Sheets("aufgeteilt").Cells(ezeile, i + 1) = exText(i)
Sheets("aufgeteilt").Cells(ezeile, i + 1) = CDbl(Sheets("aufgeteilt").Cells(ezeile, i + 1))
Sheets("aufgeteilt").Cells(ezeile, i + 1).NumberFormat = "#,##0.00"
Next i
'zusätzliche Leerzeile nach Buchungssätzen einfügen
ezeile = ezeile + 2
End If

Next zeile

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von woenni Einsteiger_in (75 Punkte)
Hallo M.O.,

vielen Dank für Idee und Programmierung des Makros und Deine Unterstützung. Das finde ich wirklich toll, es gibt mir Hoffnung ich und denke jetzt schon, daß es mir weiterhelfen wird. Ich kann es aber erst heute Abend (wenn es dunkel wird) ausprobieren. Auf jeden Fall gebe ich ein Feedback.

mfg Woenni
0 Punkte
Beantwortet von woenni Einsteiger_in (75 Punkte)
Hallo M.O.,

ich habe das Makro ausgeführt und schon ein Ergebnis erzielt, das nahe an das gewünschte Ziel kommt. Mein Kompliment an Dich, daß Du aus "meinen Stammeleien" schon soviel Substanz erzielen konntest. Ich habe mal das erste OriginalKontoblatt PDF und die Arbeitsmappe mit Deinem Makro, den Testdaten (Konten) und dem Ergebnis (aufgeteilt) hochgeladen. Hier sind die Links:

Kontoblatt: http://www.file-upload.net/download-8044593/Konten_017_2006_geschw--rzt.pdf.html

Test Ergebnis:http://www.file-upload.net/download-8044591/MO_MakroTest.xlsm.html

Im TestErgebnis habe ich unten nochmal aufgeführt, wie es aussehen sollte.

Vielen Dank und Gute Nacht

Woenni
...