arotciv
Goto Top

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:

    1. 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.

Content-Key: 295765

Url: https://administrator.de/contentid/295765

Ausgedruckt am: 29.03.2024 um 15:03 Uhr

Mitglied: 114757
114757 10.02.2016 aktualisiert um 14:02:59 Uhr
Goto Top
Gruezi.
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
Mitglied: arotciv
arotciv 10.02.2016 um 14:35:12 Uhr
Goto Top
Hallo Jodel32,

danke, das war hilfreich,

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.
Mitglied: 114757
114757 10.02.2016, aktualisiert am 11.02.2016 um 09:14:20 Uhr
Goto Top
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 ...
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
Ranges natürlich an deine Umgebung anpassen ...
Mitglied: arotciv
arotciv 10.02.2016 um 23:50:13 Uhr
Goto Top
Danke Jodel32,

leider steckt in Zeile 06 ein Fehler drin: Laufzeitfehler 1004.
Hast Du eine Idee dazu?
Mitglied: 114757
114757 11.02.2016 aktualisiert um 13:14:41 Uhr
Goto Top
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...