Excel-Dateien importieren (n:1)

Dateien im Excel-Format in 1 (existierendes) Tabellenblatt einfügen

In einem (1) Verze­ich­nis liegen eine oder mehrere Dateien im Excel-For­mat. Obwohl man mit viel gutem Willen auch *.csv dazu rech­nen kön­nte, csv ist und bleibt ein textbasiertes und kein Excel-For­mat. Jew­eils das erste Arbeits­blatt aller Files des benan­nten Verze­ich­niss­es, welche dem Muster (beispiel­sweise *.xlsx) ent­sprechen, wird durch das Makro nacheinan­der (untere­inan­der) in das derzeit aktuelle Arbeits­blatt einge­fügt.

Zu Beginn des Ablaufs wird geprüft, ob das zu fül­lende Blatt leer ist. Sind Dat­en in der Ziel-Tabelle (also im aktuellen Sheet), dann wird nachge­fragt, ob diese gelöscht wer­den sollen. Bei einem Nein wer­den die neuen Dat­en ein­fach ange­hängt, also begin­nend nach der let­zten Zeile mit Ein­trä­gen.

Falls im Code fest­gelegt wurde, dass die Quell­daten eine Über­schriftzeile haben, dann wird diese natür­lich nur beim ersten Ein­fü­gen mit über­nom­men, bei den fol­gen­den Dateien nicht. Aber Achtung: Die erste Über­schriftzeile wird auch dann mit über­nom­men, wenn existierende Dat­en nicht gelöscht wor­den sind.

In die Ziel-Datei wer­den die extern liegen­den Dat­en in das aktuelle Arbeits­blatt importiert. Und dort (Ziel) ist auch das Makro, der VBA-Code inte­gri­ert. In der Vor­lage ist zu Beginn eine kom­plett leere Tabelle, welche durch Aufruf des Makros gefüllt wird. Aus­nahm­sweise liegen hier zwei Ver­sio­nen der Mus­ter­datei (Ziel­d­atei für den Import) vor: Im For­mat *.xlsm (ab 2007) hier (Allesimport.xlsm) und im Dateifor­mat *.xls (AllesImport.xls, Excel 2003) hier. Falls Sie unsere Muster-Dat­en ver­wen­den wollen , so liegen diese im For­mat *.xlsx und *.xls vor. Laden Sie diese als gepack­te Datei (*.zip) mit Kopfzeilen oder ohne Kopfzeilen ein­fach herunter.

Hin­weis: Wenn Sie die (leere) Muster-Datei aus­führen, die Dat­en also importieren wollen und Sie auch den Pfad der Quell­dateien entwed­er im Makro oder auf der Fest­plat­te ange­passt haben, dann kön­nen Sie das Makro mit AltF8 in dem dann erscheinen­den Fen­ster aus­suchen und von dort aus auf aufrufen und starten.

Der Code hat nicht allzu viele Kom­mentare, obwohl er nicht in jedem Fall ohne mehr oder weniger Nach­denken zu ver­ste­hen ist. Im Vorder­grund ste­ht hier eine lauf­fähige Lösung ein­er Auf­gabe, nicht der Lern­ef­fekt. Das soll Sie aber nicht daran hin­dern, sich inten­siv mit den ver­schiede­nen Pas­sagen auseinan­derzuset­zen. – Falls es Sie irri­tiert: Die bei­den Funk­tionen zur Bes­tim­mung der let­zten Zeile und Spalte habe ich bewusst aus­ge­lagert. So haben Sie eher die Möglichkeit, solch eine uni­verselle Funk­tion auch in anderen Mod­ulen einzuset­zen.

Hin­weis: Eine ähn­liche Auf­gabe wird hier im Blog disku­tiert (n:n‑Import)

Brauchen Sie Anpas­sun­gen an Ihre eige­nen, speziellen Bedürfnisse? Natür­lich dür­fen Sie das sel­ber durch­führen oder durch­führen lassen. Und selb­stre­dend ver­mit­teln wir auch gerne an den eigentlichen Autor des Codes, an GMG-CC.

[NachOben­Let­zte Verweis=„ML: xls-Import n:1”]
Dieser Beitrag wurde unter Daten-Import / -Export, Mit VBA/Makro, Musterlösungen abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.