ich habe eine Excel-Datei mit jeder Menge Arbeitsblätter. Überall ist der Aufbau der Tabelle gleich. Diese Tabellen möchte ich in ein neues Arbeitsblatt kopieren, nicht konsolidieren.
Klar geht es, jede Tabelle markieren und mit STGR C + STGR V in das Zielblatt zu kopieren. Aber bei der Menger der Blätter ist das eine nervige Aufgabe.
Weiß jemand eine Möglichkeit das irgendwie zu automatisieren? Die Anzahl der Spalten und die Beschriftung der Spalten ist bei allen gleich. Die Anzahl der Zeilen ist unterschiedlich.
Anbei eine Testdatei (die Original ist natürlich viel größer)
Wobei Du natürlich den Pfad für die Quelle und ggf. die Spaltenangben in den erweiterten Daten noch anpassen musst...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben. Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
26.06.2024, 16:21 (Dieser Beitrag wurde zuletzt bearbeitet: 26.06.2024, 16:21 von snb.)
Code:
Sub M_snb() Tabelle1.Cells.Delete
For j = 1 To Sheets.Count If Left(Sheets(j).Name, 1) = "K" Then Tabelle1.UsedRange.Offset(Tabelle1.UsedRange.Rows.Count * Abs((Tabelle1.Cells(1) <> ""))).Resize(Sheets(j).UsedRange.Rows.Count, 5) = Sheets(j).UsedRange.Offset(Abs(Tabelle1.Cells(1) <> "")).Value Next End Sub
Ohne PQ:
Code:
Sub M_snb() Tabelle1.Cells.Delete
With CreateObject("ADODB.Recordset") .Open "SELECT * FROM [Kurs 1$] Union Select * From [Kurs 2$] Union Select * From [Kurs 3$] Union Select * From [Kurs 4$]", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml;HDR=Yes;IMEX=1""" Tabelle1.Cells(2, 1).CopyFromRecordset .DataSource End With
Tabelle2.UsedRange.Rows(1).Copy Tabelle1.Cells(1) End Sub
Und etwas flexibeler:
Code:
Sub M_snb_000() Tabelle1.Cells.Delete Tabelle2.UsedRange.Rows(1).Copy Tabelle1.Cells(1)
For Each it In Sheets c00 = c00 & it.Name & vbLf Next
With CreateObject("ADODB.Recordset") .Open "SELECT * FROM [" & Join(Filter(Split(c00, vbLf), "Kurs"), "$] Union Select * From [") & "$]", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml;HDR=Yes;IMEX=1""" Tabelle1.Cells(2, 1).CopyFromRecordset .DataSource End With End Sub
(04.07.2024, 10:50)sekidame schrieb: Wäre es leichter die Tabellen zusammenzuführen, wenn es nicht unterschiedliche Blätter sondern unterschiedliche Excel-Dateien wären?
Das ist weder leichter noch schwerer, nur anders, weil ja die Bedingungen andere sind. Aber da (uns) die Bedingungern nicht bekannt sind, lässt sich da auch nichts konkretes dazu sagen...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben. Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.