mehrer Excel Tabellen mit mehreren Blättern zusammenführen
Hallo zusammen,
ich habe mehrere Excel Tabellen mit jeweils mehreren Tabellenblättern. (Tabelle 1, Tabelle 2, Tabelle 3, ....)
Jedes Tabellenblatt heißt in jeder Tabelle gleich
Nun suche ich eine Möglichkeit, alle Dateien zu einer Zusammenzuführen.
Es sollen alle Werte aller Dateien von Tabelle 1, Tabelle 2, usw. in eine neue Datei untereinander eingefügt werden und dabei natürlich die Tabellennamen beibehalten werden.
Ich hoffe es ist verständlich was ich meine.
Hat mir ja jemand ein Tool, dass das kann oder ein Makro?
Vielen Dank!
Grüße
quba
ich habe mehrere Excel Tabellen mit jeweils mehreren Tabellenblättern. (Tabelle 1, Tabelle 2, Tabelle 3, ....)
Jedes Tabellenblatt heißt in jeder Tabelle gleich
Nun suche ich eine Möglichkeit, alle Dateien zu einer Zusammenzuführen.
Es sollen alle Werte aller Dateien von Tabelle 1, Tabelle 2, usw. in eine neue Datei untereinander eingefügt werden und dabei natürlich die Tabellennamen beibehalten werden.
Ich hoffe es ist verständlich was ich meine.
Hat mir ja jemand ein Tool, dass das kann oder ein Makro?
Vielen Dank!
Grüße
quba
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 49023
Url: https://administrator.de/contentid/49023
Ausgedruckt am: 08.11.2024 um 11:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo quba!
Zu Deinem eher allgemein formulierten Anliegen könnte ich folgende eher allgemein formulierte Lösung anbieten:
Vorgangsweise:
Ablauf:
Es werden alle Dateien des Quellordners mit dem Dateityp ".xls" geöffnet und die Namen der darin enthaltenen Tabellen mit den Tabellennamen in der Sammeldatei verglichen. Bei Übereinstimmung der Tabellennamen werden die Inhalte (inkl. Formeln und Formatierungen) aus der Teil-Datei-Tabelle kopiert und in der Gesamt-Datei-Tabelle ab der ersten leeren Zeile eingefügt. Abschließend wird die Gesamt-Datei gespeichert.
Bitte beachten:
Grüße
bastla
Zu Deinem eher allgemein formulierten Anliegen könnte ich folgende eher allgemein formulierte Lösung anbieten:
Option Explicit
Sub Sammle()
Const sSourcePath As String = "D:\Viele viele XLS"
Dim wbGes As Workbook, wsTarget As Worksheet
Dim wbTeil As Workbook, wsSource As Worksheet
Dim fso As Object, oFile As Object
Dim rNext As Integer, bSheetFound As Boolean
Set wbGes = ActiveWorkbook
Set fso = CreateObject("Scripting.FileSystemObject")
'Quell-Ordner durchsuchen
For Each oFile In fso.GetFolder(sSourcePath).Files
'nur .xls-Dateien bearbeiten
If LCase(Right(oFile.Name, 4)) = ".xls" Then
Application.Workbooks.Open (oFile.Path)
Set wbTeil = ActiveWorkbook
'alle Tabellen der Gesamt-Datei bearbeiten
For Each wsTarget In wbGes.Worksheets
'Tabelle auch in Teil-Datei enthalten?
For Each wsSource In wbTeil.Worksheets
bSheetFound = False
If LCase(wsTarget.Name) = LCase(wsSource.Name) Then
bSheetFound = True
Exit For
End If
Next
If bSheetFound Then
'Tabelle da, Daten kopieren ...
wbTeil.Worksheets(wsTarget.Name).Activate
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Copy
'... und einfügen in Gesamt-Datei-Tabelle...
wbGes.Worksheets(wsTarget.Name).Activate
'... ab der nächsten freien Zeile
rNext = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row + 1
ActiveSheet.Cells(rNext, 1).Activate
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next 'Tabelle
wbTeil.Close
End If
Next 'Datei
wbGes.Worksheets(1).Activate
'Gesamt-Datei speichern
wbGes.Save
MsgBox "Fertig."
End Sub
- Neue Excel-Datei (mit allen benötigten Tabellen für die gesammelten Daten) erstellen und nicht im gleichen Pfad wie die Einzel-Dateien speichern,
- obiges VBA-Programm im VBA-Editor in das Code-Fenster von "Diese Arbeitsmappe" oder wahlweise in ein neues Modul einfügen,
- Ordnerpfad für Teil-Dateien anpassen (derzeit "D:\Viele viele XLS") und
- starten.
Ablauf:
Es werden alle Dateien des Quellordners mit dem Dateityp ".xls" geöffnet und die Namen der darin enthaltenen Tabellen mit den Tabellennamen in der Sammeldatei verglichen. Bei Übereinstimmung der Tabellennamen werden die Inhalte (inkl. Formeln und Formatierungen) aus der Teil-Datei-Tabelle kopiert und in der Gesamt-Datei-Tabelle ab der ersten leeren Zeile eingefügt. Abschließend wird die Gesamt-Datei gespeichert.
Bitte beachten:
- Es werden in dieser Version keine neuen Tabellen in der Gesamt-Datei erstellt, diese müssen bereits mit den richtigen Namen existieren.
- Die Teil-Dateien dürfen nicht geöffnet sein, ansonsten "Automatisierungsfehler".
Grüße
bastla
Hallo,
ich habe ein ähnliches Problem und die hier angegebene Lösung funktioniert auch bei meinem Problem in soweit schon ganz gut, dass die Daten aus den Einzeldateien untereinander in der Sammeldatei eingefügt werden. Da ich aber mit Tasknamen und Dropdown Menues arbeite kommt immer eine meldung in der ihc den Tasknamen umbenennen muss. Kann dies irgendwie umgangen werden?
Und das ganze geht auch nur wenn die zusammenfassende Datei die gleiche Struktur hat wie die einzelnen...
Ich möchte aber ganz gerne nur bestimmte Spalten aus den einzelnen Dateien rüberziehen (Beispiel: in den Einzelsheet können Stunden pro Tag eingegeben werden, die dann wochenweise aufsummiert werden. In der Sammeldatei hätte ich gerne nur die Wochenwerte...)
Ist das auch irgendwie möglich?
Und das dritte Problem ist, dass die Daten nicht automatisch aktualisiert werden, wenn ich in den Einzeldateien etwas ändere.
Ich habe leider so gut wie gar keine Ahnung mit dem Programmieren in VBA und wäre für jede Hilfe dankbar.
Ich kann auch gerne Beispiel Dateien schicken, wenn das hilft.
Viele Grüße,
simba2282
ich habe ein ähnliches Problem und die hier angegebene Lösung funktioniert auch bei meinem Problem in soweit schon ganz gut, dass die Daten aus den Einzeldateien untereinander in der Sammeldatei eingefügt werden. Da ich aber mit Tasknamen und Dropdown Menues arbeite kommt immer eine meldung in der ihc den Tasknamen umbenennen muss. Kann dies irgendwie umgangen werden?
Und das ganze geht auch nur wenn die zusammenfassende Datei die gleiche Struktur hat wie die einzelnen...
Ich möchte aber ganz gerne nur bestimmte Spalten aus den einzelnen Dateien rüberziehen (Beispiel: in den Einzelsheet können Stunden pro Tag eingegeben werden, die dann wochenweise aufsummiert werden. In der Sammeldatei hätte ich gerne nur die Wochenwerte...)
Ist das auch irgendwie möglich?
Und das dritte Problem ist, dass die Daten nicht automatisch aktualisiert werden, wenn ich in den Einzeldateien etwas ändere.
Ich habe leider so gut wie gar keine Ahnung mit dem Programmieren in VBA und wäre für jede Hilfe dankbar.
Ich kann auch gerne Beispiel Dateien schicken, wenn das hilft.
Viele Grüße,
simba2282
Hallo simba2282 und willkommen im Forum!
Du wirst eine wesentlich bessere Chance auf Antworten haben, wenn Du ein neues Thema eröffnest - hier erfährt außer mir nur noch quba von Deinem Anliegen ...
Aber vorweg: Versuch Deine Aufgabenstellung konkreter zu formulieren (insbesondere hinsichtlich des Umfanges - für das Zusammenfassen von 5 oder auch 10 Tabellen wirst Du kein VBA brauchen - und der Struktur / des Aufbaues der Einzeltabellen - eine Tabelle je KW oder mehrere Wochen auf einem Blatt, etc).
Überlege auch gleich, was schon vorweg in den Einzeltabellen erfolgen könnte - etwa das Berechnen der Wochensummen (falls das nicht ohnehin schon geschieht) ...
Zum Thema "Automatische Aktualisierung": Dafür würde eher die Verwendung von Excel-Formeln sprechen, wobei aber die VBA-Lösung beliebig oft mit "leeren" Zieltabellen ablaufen könnte ...
BTW: Mit "Tasknamen" sind vermutlich "Bereichsnamen" gemeint ...
Für mehr habe ich momentan leider nicht Zeit (bin auch nicht ganz fit), daher nochmals der Hinweis auf ein neues Thema.
Grüße
bastla
Du wirst eine wesentlich bessere Chance auf Antworten haben, wenn Du ein neues Thema eröffnest - hier erfährt außer mir nur noch quba von Deinem Anliegen ...
Aber vorweg: Versuch Deine Aufgabenstellung konkreter zu formulieren (insbesondere hinsichtlich des Umfanges - für das Zusammenfassen von 5 oder auch 10 Tabellen wirst Du kein VBA brauchen - und der Struktur / des Aufbaues der Einzeltabellen - eine Tabelle je KW oder mehrere Wochen auf einem Blatt, etc).
Überlege auch gleich, was schon vorweg in den Einzeltabellen erfolgen könnte - etwa das Berechnen der Wochensummen (falls das nicht ohnehin schon geschieht) ...
Zum Thema "Automatische Aktualisierung": Dafür würde eher die Verwendung von Excel-Formeln sprechen, wobei aber die VBA-Lösung beliebig oft mit "leeren" Zieltabellen ablaufen könnte ...
BTW: Mit "Tasknamen" sind vermutlich "Bereichsnamen" gemeint ...
Für mehr habe ich momentan leider nicht Zeit (bin auch nicht ganz fit), daher nochmals der Hinweis auf ein neues Thema.
Grüße
bastla