viele excel dateien in eine zusammenfügen...Makro?
Hello ihr lieben,
excel bringt mich wieder mal an meine grenzen. Ich habe 180 xls-Dateien mit je einem Tabellenblatt und hätt gern ein file mit allen (oder wenn nicht möglich dann halt 2 oder 3 files) Kennt jemand einen trick wie ich das schnell machen kann? weiß´zwar, dass es händisch über "tabellenblatt kopieren in..." geht, aber bei 180 is das doch recht mühsam...
bitte, hilfe, danke!
5 Antworten
Ein Makro lohnt sich erst, wenn das jeden Monat einmal vorkommt, dass du 180 Dateien zusammenkopieren musst. Ist es aber eine einmalige Sache, würde ich es von Hand machen.
Und: ein Makro ist auch nur dann sinnvoll, wenn die Dateien durchnummerierte Namen haben (Dat001, Dat002, ..., Dat180) und jeden Monat gleich heißen, bzw. sich der Namen automatisch generierern lassen.
Sind die Dateien immer wieder anders, müsstest du dir die Dateiliste erst per dir-Befehl in einen File schreiben lassen, und diese Liste dann immer vorher ins Makro reinkopieren - Klar?
Keine Ahnung, ob du es noch brauchst, aber hier ist die -eigentlich einfache- Umsetzung in VBA (Einfach als Modul in der Datei einbauen, die die Tabellenblätter aufnehmen soll):
Sub TabBlaetterKopieren()
Dim arrDateiNamen(180) As String
Dim fso, fld, fl
Set fso = CreateObject("Scripting.FileSystemObject")
' Achtung! Hier Pfad ändern
Set fld = fso.GetFolder("C:\Temp\WB180\")
Application.ScreenUpdating = False
For Each fl In fld.Files
Workbooks.Open fl.Name
Sheets(1).Select
' Achtung! Hier denDateinamen ändern
Sheets(1).Copy After:=Workbooks("Zusammenfassen.xls").Sheets(Sheets.Count)
Workbooks(fl.Name).Close False
Next
Application.ScreenUpdating = True
Set fso = Nothing
Set fld = Nothing
End Sub
Alle Tabellenblätter, die in der "Sammelmappe" bereits enthalten waren, bleiben natürlich.
OK so?
Halli Hallo,
Ich hab das Problem der Macro bei mir nicht funktioniert ich bekmme immer wieder die Fehlermedlung = Laufzeitfehler 1004 xyz.xls datei wurde nicht gefunden obwohl die datei in dem vorgegebenen Folder liegt .
Die Zeile an der dr Compailer stehen bleibt ist """Workbooks.Open fl.Name"""
Ich würde es Händisch machen über die tabellenblattfunktion - aber 180 wären mir zu unübersichtlich - ich würde pro datei nicht mehr als 60 Blätter nehmen . oder über acces gehen .
Da du in der Routine alle 180 Dateinamen angeben müsstest dürftest du damit genauso schnell sein.