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

Printed on: April 19, 2024 at 23:04 o'clock

Mitglied: 114757
114757 Feb 10, 2016 updated at 13:02:59 (UTC)
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
Member: arotciv
arotciv Feb 10, 2016 at 13:35:12 (UTC)
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 Feb 10, 2016, updated at Feb 11, 2016 at 08:14:20 (UTC)
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 ...
Member: arotciv
arotciv Feb 10, 2016 at 22:50:13 (UTC)
Goto Top
Danke Jodel32,

leider steckt in Zeile 06 ein Fehler drin: Laufzeitfehler 1004.
Hast Du eine Idee dazu?
Mitglied: 114757
114757 Feb 11, 2016 updated at 12:14:41 (UTC)
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...