EXCEL VBA Makro: Daten aus meheren Arbeitsblättern in einer Tabelle zusammenführen
Hallo,
ich habe ein Excel Workbook, in dem durch ein Makro mehere neue Arbeitsblätter erzeugt werden. Die Anzahl der Arbeitsblätter variiert.
Der Name der Arbeitsblätter ist immer gleich: "NTI-INPUT1" , 2, 3 usw.
Ich möchte jetzt in einem weiteren Arbeitsblatt die Werte der einzelnen Blätter zusammenziehen, sprich kopieren. Dabei sollen dann die Werte aus jedem Blatt nebeneinander stehen.
Die variierende Anzahl an Blättern bereitet mir dabei Kopfzerbrechen, zumal es noch andere Blätter mit anderen Namen in der Mappe gibt deren Werte ich nicht brauche.
Meine Werte sehen ungefähr so aus:
ich habe ein Excel Workbook, in dem durch ein Makro mehere neue Arbeitsblätter erzeugt werden. Die Anzahl der Arbeitsblätter variiert.
Der Name der Arbeitsblätter ist immer gleich: "NTI-INPUT1" , 2, 3 usw.
Ich möchte jetzt in einem weiteren Arbeitsblatt die Werte der einzelnen Blätter zusammenziehen, sprich kopieren. Dabei sollen dann die Werte aus jedem Blatt nebeneinander stehen.
Die variierende Anzahl an Blättern bereitet mir dabei Kopfzerbrechen, zumal es noch andere Blätter mit anderen Namen in der Mappe gibt deren Werte ich nicht brauche.
Meine Werte sehen ungefähr so aus:
- RT60 Average Results
Band RT60(T20) MeasUnct
[Hz] [s] [%]
63 -,-- -,--
125 0,96 9,97
250 1,13 6,50
500 0,98 4,93
1000 0,78 3,92
2000 0,81 2,72
4000 0,69 2,08
8000 0,70 1,46
und ich will nur die aus der mittleren Spalte kopieren, aber aus einer jetzt noch unbekannten Anzahl.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 295765
Url: https://administrator.de/forum/excel-vba-makro-daten-aus-meheren-arbeitsblaettern-in-einer-tabelle-zusammenfuehren-295765.html
Ausgedruckt am: 23.04.2025 um 14:04 Uhr
5 Kommentare
Neuester Kommentar

Gruezi.
Einfach den Anfang des Namens jeden Sheets in einer Schleife prüfen...
Gruß jodel32
Einfach den Anfang des Namens jeden Sheets in einer Schleife prüfen...
dim sh as Worksheet
' Für jedes Worksheet ...
for each sh in Worksheets
'prüfe ob die ersten 9 Zeichen dem gewünschten String "NTI-INPUT" entsprechen
if UCase(Left(sh.Name,9)) = "NTI-INPUT" then
' hier aus dem sheet (Variable: sh) deine Daten kopieren
end if
Next
Gruß jodel32

Zitat von @arotciv:
dennoch bleibt die Frage wie ich die Werte im neuen Blatt nebeneinander reinkopiert bekomme. Ich muss die Sheets also zählen und dann aus der jeweiligen Spalte des Quellsheets die Werte in das neue Zielsheet einfügen, aber mit jedem Durchlauf eine Zelle weiter rechts einfügen.
Ist doch kein Beinbruch ...dennoch bleibt die Frage wie ich die Werte im neuen Blatt nebeneinander reinkopiert bekomme. Ich muss die Sheets also zählen und dann aus der jeweiligen Spalte des Quellsheets die Werte in das neue Zielsheet einfügen, aber mit jedem Durchlauf eine Zelle weiter rechts einfügen.
dim sh as Worksheet
' Für jedes Worksheet ...
for each sh in Worksheets
'prüfe ob die ersten 9 Zeichen dem gewünschten String "NTI-INPUT" entsprechen
if UCase(Left(sh.Name,9)) = "NTI-INPUT" then
sh.Range("A10").Copy Sheets("Zielsheet").Cells(2,Columns.Count).End(xlToLeft).Offset(0,1)
end if
Next

Zitat von @arotciv:
leider steckt in Zeile 06 ein Fehler drin: Laufzeitfehler 1004.
Hast Du eine Idee dazu?
sorry oben korrigiert, war davon ausgegangen das in der Zeile schon Daten stehen...leider steckt in Zeile 06 ein Fehler drin: Laufzeitfehler 1004.
Hast Du eine Idee dazu?