Dateien zusammenfassen

Aus ver­schieden­sten Grün­den kann es sin­nvoll oder erforder­lich sein, dass aus mehreren Arbeitsmap­pen die Inhalte in eine einzige Mappe zusam­menge­fasst wer­den sollen oder müssen. Die Ursprungs­dat­en kön­nen dabei in unter­schiedlichen For­mat­en vor­liegen, beispiel­sweise als Text­datei (*.txt, *.csv, …) oder als Excel-Datei (*.xls, *.xlsx, *.xlsm, …). Neben der Voraus­set­zung, dass alle in dem Vor­gang zu importieren­den Dateien vom gle­ichen Typ sind, also alle die gle­iche Dateinamen­er­weiterung haben, gibt es nur eine einzige klare Bedin­gung für einen „sauberen” Import: die einzufü­gen­den Dateien müssen alle den gle­ichen Auf­bau haben; also gle­iche Spal­tenzahl, gle­iche Spal­tenpo­si­tion; und alle Tabellen sind entwed­er alle mit oder alle ohne Über­schrift-Zeile erstellt.

Die einzel­nen Dateien kön­nen entwed­er in jew­eils ein einziges neues Tabel­len­blatt einge­fügt wer­den oder alle nacheinan­der in ein einziges Sheet. Als weit­ere Voraus­set­zung gilt: Text­dateien sollen immer nur kom­plett über­nom­men wer­den, bei Bedarf auch ohne Kopfzeile.

Bei Excel-Dateien als Daten­liefer­ant wird in diesen Lösungsvorschlä­gen davon aus­ge­gan­gen, dass immer das erste Arbeits­blatt der Quell-Datei importiert wird, was aber dur­chaus im VBA-Code angepasst wer­den kann. – Weit­er­hin ist es denkbar, dass die zu importieren­den Dat­en eine Kopfzeile (Über­schrift) haben oder nicht. Ist dieses der Fall, dann soll (natür­lich) nur eine einzige Kopfzeile in die Ziel­d­atei einge­fügt wer­den.

Die eine Möglichkeit zur Erre­ichung des Ziels ist copy and paste. Bei weniger als ein­er Hand­voll Files mag das ja noch trag­bar sein, aber wenn es mehrere Dateien sind oder der Vor­gang immer wieder durchge­führt wer­den muss, weil beispiel­sweise Dat­en aktu­al­isiert wor­den sind, dann bietet sich eine Automa­tisierung per Makro (VBA-Pro­gramm) an. Das geht auch sehr gut, wenn die oben genan­nte Voraus­set­zung erfüllt ist, dass die zusam­men­zuführen­den Tabel­len­blät­ter aller Dateien iden­tisch aufge­baut sind.

Eine weit­ere Voraus­set­zung ist, dass alle zusam­men­z­u­fassenden Files in nur einem (1) Verze­ich­nis sind. Und es wer­den auch alle in diesem Ord­ner enthal­te­nen Dateien mit der entsprechen­den Endung für die Zusam­men­fas­sung ver­wen­det. Dateien mit anderen als den im Code fest­gelegten Endun­gen wer­den nicht berück­sichtigt. Das bedeutet beispiel­sweise: Es wer­den alle *.txt-Dateien aus dem Verze­ich­nis C:\ImportData\ von dem Makro ein­ge­le­sen. Oder von allen *.xlsx-Dateien die Dat­en des ersten Tabel­len­blattes.

Hin­weis: Sie wer­den nicht umhin kom­men, die eine oder andere Änderung im VBA-Code der hier vorgestell­ten Muster­lö­sun­gen vorzunehmen. Ins­beson­dere sind dieses fest ver­ankerte Werte für Pfade der Quell­dateien. Wenn Sie kein­er­lei Erfahrung mit Pro­gram­mierung haben, empfehlen wir Ihnen, fachkundi­ge Hil­fe in Anspruch zu nehmen. Bei Bedarf ste­hen wir Ihnen auch gerne mit Rat und Tat zur Seite, ein­fach eine Mail an uns.

Wir stellen Ihnen hier (nach und nach) ver­schiedene Lösun­gen bzw. Lösungsan­sätze vor. Für Tests von Ihrer Seite ste­hen Ihnen auch Mus­ter­dat­en in den For­mat­en *.xls (Excel 2003), *.xlsx (Excel ab 2007), *.csv (mit Semi­kolon getren­nt) sowie *.txt (mit Tab­stopp getren­nt) und natür­lich jew­eils ein Excel-Work­book mit dem VBA-Code zur Ver­fü­gung.

Hin­weis: Wir räu­men ein. dass manch­es „ele­gan­ter” pro­gram­miert wer­den kann. Vielle­icht einige zehn­tel Sekun­den schneller. Aber bei diesen Tem­plates (Mus­ter­dateien) ste­ht die Funk­tion­al­ität und vor allen Din­gen die Trans­parenz und Nachvol­lziehbarkeit des Codes im Vorder­grund. Sie als Anwen­der sollen Änderun­gen vornehmen kön­nen, ohne dabei einen „Blind­flug” zu machen.

Die fol­gende Tabelle ist so aufge­baut: In der linken Spalte sehen Sie die Verknüp­fung zum Beitrag mit einem möglichst kurzem Namen, mit­tig ste­ht eine knappe Beschrei­bung des Inhaltes und rechts ist das Datum der Veröf­fentlichung oder der let­zten bedeu­ten­den Aktu­al­isierung ver­merkt. In der Titelzeile der Tabelle kön­nen Sie die Sortier­möglichkeit­en nutzen.

Dieser Beitrag wurde unter Daten-Import / -Export, Musterlösungen abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.