Excel-Dateien importieren (n:n)

Dateien im Excel-Format in je 1 neues Blatt 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 reines Textfor­mat und kein Excel-For­mat.

Alle Files, welche dem Muster (beispiel­sweise *.xlsx) entsprechen, wer­den durch das Makro nacheinan­der in jew­eils ein neues Arbeits­blatt einge­fügt. Im Code kann fest­gelegt wer­den, ob die Namen der Ursprungs­dateien als Blat­tbeze­ich­nung (im Reg­is­ter unten) ver­wen­det wer­den sollen oder ob Excel die Ver­wal­tung übern­immt.

Hin­weis: Wenn Sie im Code bes­tim­men, dass beste­hende Blät­ter nicht gelöscht wer­den, dann muss gewährleis­tet sein, dass bei Über­nahme des File­na­mens kein Blatt mit diesem Namen existiert. Alter­na­tiv müssen Sie den Code vorher anpassen oder im Vor­wege auf Namen­skon­flik­te prüfen.

Zu Beginn wird geprüft, ob das dieses Blatt leer ist. Sind Dat­en in der Ziel-Tabelle (also im aktuellen Sheet), dann wird (je nach Fes­tle­gung im Code) ein neues Blatt entwed­er mit dem Namen der Quell­datei oder den Excel-Default­na­men (Tabelle1, Tabelle2, ) angelegt.

In die Ziel-Datei wer­den die extern liegen­den Dat­en nacheinan­der importiert. Hier, in diesem File 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 mit den Dat­en der ersten Quell­datei gefüllt wird. Jede weit­ere Quell­datei kommt in ein neues Tabel­len­blatt. 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_02.xlsm), im Dateifor­mat *.xls (AllesImport_02.xls, Excel 2003) hier. Falls Sie unsere Muster-Dat­en ver­wen­den wollen , so liegen diese im For­mat *.xlsx und als *.xls vor. Laden Sie diese als gepack­te Datei (*.zip) natür­lich mit 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 angepasst 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 all zu 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­tio­nen 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:1‑Import).

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

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