Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1872to1876
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zusammenführen mehrerer Tabellenblätter

Zusammenführen mehrerer Tabellenblätter
02.03.2022 15:54:46
Andrea
Moin Moin,
Ich habe in einem Ordner auf meinem Rechner mehrere Arbeitsordner mit je 3 Tabellenblättern, das zweite und dritte Tabellenblatt haben in jedem Arbeitsordner den gleichen Namen. Einzig das erste hat immer einen anderen Namen.
Nun möchte ich die jeweils ersten Tabellenblätter in einem neuen Arbeitsordner zusammenführen und speichern. Ich hab hier zwar schon einen Code gefunden gehabt aber der will alle Tabellenblätter in die neue Datei kopieren was wegen den gleichen Namen zum Absturz von Excel geführt hat. (Ausserdem zum Verlust des geschriebenen Codes da nicht gespeichert 🤐
Ich hoffe ich hab mich nicht zu kompliziert ausgedrückt und jemand kann mir weiterhelfen.
Danke und schöne Grüße
Andrea

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
sheets(1) in den Code irgendwie ...
02.03.2022 16:08:12
Pierre
... mehr kann ich ohne Code und/oder Mappe nicht dazu sagen.
AW: sheets(1) in den Code irgendwie ...
02.03.2022 17:52:21
Andrea
Den Code den ich meine ist hier zu finden
https://www.herber.de/forum/archiv/728to732/731397_Blatter_aus_mehreren_Mappen_in_neue_Mappe_kopieren.html
Zweite Antwort, den hab ich abgeschrieben. Sry aber ich schreibe hier am Tablet und kann den nicht kopieren aus dem Archiv. Bsp. Datei kann ich auch nicht einstellen da ich Excel 2016 nur auf dem Arbeits-Rechner habe und von dort aus darf ich nicht auf dieses Forum zugreifen.
Gruß Andrea
Anzeige
AW: Zusammenführen mehrerer Tabellenblätter
02.03.2022 16:38:45
UweD
Hallo
Wegen der gleichen Namen: Ich hab es mal so gelöst, dass die Blätter in der neuen Datei so heißen, wie der ursprüngliche Dateiname
Versuch das mal so

Sub alle_Dateien_Verzeichnis()
On Error GoTo Fehler
Dim WBN As Workbook, WBx As Workbook, TBx As Worksheet
Dim Pfad As String, Ext As String, Datei As String
Ext = ".xlsx"
Pfad = "E:\Excel\Temp\" '**** mit \
Set WBN = Workbooks.Add 'neue Datei erstellen
Datei = Dir(Pfad & "*" & Ext)
Do While Len(Datei) > 0
Application.ScreenUpdating = False
Set WBx = Workbooks.Open(Filename:=Pfad & Datei)
Set TBx = WBx.Sheets(1)
TBx.Name = Replace(Datei, Ext, "") 'umbenennen in Dateinamen
TBx.Copy After:=WBN.Sheets(WBN.Sheets.Count)
Workbooks(Datei).Close False 'schließen ohne speichern
Datei = Dir() ' nächste Datei
Loop
If WBN.Sheets.Count > 1 Then 'Das Standardblatt löschen
Application.DisplayAlerts = False
WBN.Sheets(1).Delete
Application.DisplayAlerts = True
End If
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: Zusammenführen mehrerer Tabellenblätter
02.03.2022 17:41:47
Andrea
Danke UweD,
aber das ist nur ein Problem wenn er alle Tabellenblätter der Arbeitsmappen kopiert. Das soll er aber gar nicht weil da nur die Variablen für das SAP Script zum Erstellen eben jenes ersten Tabelleblattes drin sind und in der Dritten ein Anleitungsdokument.
Ich benötige halt nur das erste Tabellenblatt welches ich schon umbenannt habe🙃
Gruß Andrea
AW: Zusammenführen mehrerer Tabellenblätter
03.03.2022 09:15:38
UweD
Vielleicht solltest du mal gebräuchliche Begriffe verwenden, damit wir vom Gleichen reden
Auf einer Festplatte gibt es Verzeichnisse, in denen liegen Dateien.
Manche davon sind Exceldateien, die wiederum haben mehrere Tabellenblätter .
Was genau meinst du mit "Ordner" und "Arbeitsordner"
Ich habe es so verstanden, dass du alle Exceldateien aus einem Verzeichnis öffnen möchtest und jeweils das erste Tabellenblatt in eine neue Exceldatei zusammenfügen möchtest.
Da die erste Tabelle in jeder Datei den gleichen Namen hat, kannst du Sie nicht einfach zusammenkopieren, da das nicht akzeptiert wird.
Der Name muss eindeutig sein. Deshalb hatte ich die Umbenennung vorgeschlagen.
LG UweD
Anzeige
AW: Zusammenführen mehrerer Tabellenblätter
03.03.2022 09:30:33
Andrea
Hallo Uwe,
Ja das mit den missverständlich Ausdrucksweisen ist doof...
Ein Verzeichnis mit mehreren Unterordnern, in den Unterordnern befinden sich mehrere Excel-Dateien (Arbeitsmappen).
In jeder Excel-Datei (Arbeitmappe) befinden sich 3 Tabellenblätter, das erste heißt wie die Excel-Datei, das zweite "Variablen" und die dritte heißt "Dokumentation".
Zusammen in eine Datei sollen aus allen Excel-Dateien, eines Unterordners, jeweils das Tabellenblatt welches den Dateinamen trägt. Öffnen möchte ich eigentlich nur eine der Excel-Dateien um das Script ausführen zu können.
LG
Andrea
Anzeige
AW: Zusammenführen mehrerer Tabellenblätter
03.03.2022 09:57:21
UweD
Hallo nochmal
Hier die geänderte Lösung.
Das Auswählen deines Unterordners habe ich eleganter eingebaut.

Sub alle_Dateien_Verzeichnis()
Dim WBN As Workbook, WBx As Workbook
Dim Pfad As String, Ext As String, Datei As String
Dim Dlg As FileDialog
Ext = "*.xlsx"
Set Dlg = Application.FileDialog(msoFileDialogFolderPicker) 'Verzeichnis wählen
If Dlg.Show = True Then
Pfad = Dlg.SelectedItems(1) & "\"
Set WBN = Workbooks.Add 'neue Datei erstellen
Datei = Dir(Pfad & Ext)
Application.ScreenUpdating = False 'Flackern ausschalten
Do While Len(Datei) > 0
Set WBx = Workbooks.Open(Filename:=Pfad & Datei) 'Datei wird geöffnet
WBx.Sheets(1).Copy After:=WBN.Sheets(WBN.Sheets.Count) 'das erste Tabellenblatt wird copiert
Workbooks(Datei).Close False 'schließen ohne speichern
Datei = Dir() ' nächste Datei
Loop
End If
MsgBox "Fertig"
End Sub
LG UweD
Anzeige
AW: Zusammenführen mehrerer Tabellenblätter
03.03.2022 14:08:02
Andrea
Erst mal Danke für deine Mühe UweD,
habe das Script abgeschrieben und mit F5 getestet. In der folgenden Codezeile:

WBx.Sheets(1).Copy After:=WBN.Sheets(WBN.Sheets.Count) 'das erste Tabellenblatt wird copiert
Steigt er mit der folgenden Meldung aus:
Laufzeitfehler '1004'
Die Copy-Methode des Worksheet-Objektes konnte nicht ausgeführt werden.

Ich hab das ganze 3 mal mit dem von dir verglichen und keinen Tippfehler gefunden 🤔
AW: Zusammenführen mehrerer Tabellenblätter
03.03.2022 15:03:44
UweD
Hallo Andrea
bei mir klappt das problemlos.
Versuch mal
- einen Stop und
- vor das After ein Hochkomma einzufügen
dann nochmal per F5
Wird dann eine weitere Datei mit dem gewünschten Blatt neu erstellt?
Damit können wir prüfen, ob es am ersten oder letzten Teil der Zeile liegt...

Set WBx = Workbooks.Open(Filename:=Pfad & Datei) 'Datei wird geöffnet
Stop
WBx.Sheets(1).Copy 'After:=WBN.Sheets(WBN.Sheets.Count) 'das erste Tabellenblatt wird copiert
LG UweD
Anzeige
AW: Zusammenführen mehrerer Tabellenblätter
03.03.2022 15:09:42
Andrea
Also eine neue Excel Datei wird erstellt ...
AW: Zusammenführen mehrerer Tabellenblätter
03.03.2022 15:12:05
Andrea
Und Ganz übersehen er öffnet auch die erste Excel Datei im Ordner
AW: Zusammenführen mehrerer Tabellenblätter
03.03.2022 15:27:02
UweD
OK.
Also liegt es an dem Statement ab After
So mit dem eingefügten Hochkomma müssten nun folgende Dateien offen sein
- 1) Die Datei, worin sich dieses Makro befindet
- 2) Eine Neue Datei, in die die Tabellenblatter reinkopiert werden sollen ( Mappe1 ohne Endung, da sie noch nicht gespeichert ist)
- 3) die erste gefundene xlsx-Datei, wo das zu kopierende Tabellenblatt drin ist
- 4) und (bedingt durch das Hochkomma) eine neue Datei, mit dem Blatt, was eigentlich in 2) sein sollte
Ist das bis hierher so richtig?
Anzeige
AW: Zusammenführen mehrerer Tabellenblätter
06.03.2022 15:51:31
Andrea
Hallo Uwe,
sry das ich mich erst jetzt melde. Also folgendes ist jetzt offen...
1.) Die Excel Datei von der aus ich das Makro gestartet habe
2.) Eine neue Datei mit einem leeren Tabellenblatt
3.) Die erste Exceldatei aus dem ausgewählten Ordner und
4.) Das Visual Basic Fenster
Deine Nummer 4 habe ich hier nicht
Aw: Ergänzung
03.03.2022 08:28:55
Andrea
Moin erst mal,
Ich hab jetzt beide Versionen aus folgenden Threat ausprobiert und dafür meine Arbeitsmappen angepasst so das keine doppelten Namen vorkommen.
https://www.herber.de/forum/archiv/728to732/731397_Blatter_aus_mehreren_Mappen_in_neue_Mappe_kopieren.html#731397
Bei dem korrigierten Code in der Dritten Antwort meldet Excel mir das

Application.FileSearch
nicht unterstützt wird. Ich nehme an das das daran liegt das ich eine andere Version von Excel habe, bin aber ratlos was ich stattdessen verwenden kann.
Der Code der zweiten Antwort führt in der letzten For Next Schleife zu der Fehlermeldung das der Index außerhalb des gültigen Bereichs ist.
Und noch mal sry wenn ich keinen Code poste aber ich mach das hier übers Tablett weil ich über meinen Arbeitrechner nicht ins Netz darf.
LG
Andre
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige