Registriert seit: 16.04.2014
Hallo VBA-Freunde,
ich knoble wieder mal an einem Problem:
Ich habe verschiedene Arbeitsmappen, aus denen ich bestimmte Tabellen in eine andere Arbeitsmappe kopieren möchte. Alle haben folgenden Tabellenblattnamen
Supply Lot#01 bis Supply Lot#10
oder noch mehr, die Anzahl dieser Tabellen kann ich bestimmen oder
alle Tabellen zwischen der Tabelle "Purchasing Budget hedging" und der Tabelle "Summary" markieren. Zwischen diesen beiden Tabellen stehen die benötigten Tabellen immer.
Wie müsste der Code lauten, der mir die Tabellen markiert (gruppiert)?
Die Makroaufzeichnung bringt mir
Sheets(Array("Supply Lot#01", "Supply Lot#02", "Supply Lot#03", "Supply Lot#04")). _
Select
damit komme ich aber nicht weiter.
Vielen Dank für eure Anregungen schon im voraus.
Es ist nicht genug, zu wissen. Man muss es auch anwenden.
Es ist nicht genug, zu wollen. Man muss es auch tun.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Heinz,
kommst Du mit folgenden Beispielen weiter:
Code:
eine Variante
Dim i As Long
Dim arr
arr = Sheets(Array("Supply Lot#01", "Supply Lot#02", "Supply Lot#03", "Supply Lot#04"))
For i = 0 To UBound(arr) - 1
'hier kpiervorgang
Sheets(i).Copy
Next i
'eine andere Variante (Ausschluss der nicht zu kopierenden Tabellen
Dim i As Long
For i = 0 To UBound(arr) - 1
Select Case Sheets(i).Name
Case "Purchasing ", "Summary"
Case Else
'hier kpiervorgang
Sheets(i).Copy
End Select
Next i
Gruß Atilla
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hi Heinz.
Das war zu schnell geschrieben, hier noch mal korrigiert
Code:
eine Variante
Dim i As Long
Dim arr
arr = Sheets(Array("Supply Lot#01", "Supply Lot#02", "Supply Lot#03", "Supply Lot#04"))
For i = 0 To UBound(arr) - 1
'hier kpiervorgang
Sheets(i).Copy
Next i
'eine andere Variante (Ausschluss der nicht zu kopierenden Tabellen
Dim i As Long
For i = 1 To Sheets.Count
Select Case Sheets(i).Name
Case "Purchasing ", "Summary"
Case Else
'hier kpiervorgang
Sheets(i).Copy
End Select
Next i
Gruß Atilla
Registriert seit: 16.04.2014
09.12.2014, 17:15
(Dieser Beitrag wurde zuletzt bearbeitet: 10.12.2014, 13:38 von Rabe.)
Hallo Atilla,
beide Code laufen bei mir auf einen Fehler auf-
Code:
Sub Test()
Dim i As Long
For i = 0 To UBound(arr) - 1
Select Case Sheets(i).Name
Case "Purchasing ", "Summary"
Case Else
'hier kpiervorgang
Sheets(i).Copy
End Select
Next i
End Sub
hier meldet mir VBA bei For i = 0 To UBound(arr) - 1
Fehler 13: Typen unverträglich
Code:
Sub Test2()
Dim i As Long
Dim arr
arr = Sheets(Array("Supply Lot#01", "Supply Lot#02", "Supply Lot#03", "Supply Lot#04"))
For i = 0 To UBound(arr) - 1
'hier kpiervorgang
Sheets(i).Copy
Next i
End Sub
und hier bei arr = ...
Laufzeitfehler 450, Falsche Anzahl von Argumenten oder ungültige Zuweisung einer Eigenschaft.
Code strukturiert dargestellt durch 3. Button von rechts im Beitragsformular: #[Bild: smilie.php?smile_ID=1810]
Es ist nicht genug, zu wissen. Man muss es auch anwenden.
Es ist nicht genug, zu wollen. Man muss es auch tun.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Heinz,
sorry, mit Copy und passte sollte man umgehen können, mein Fehler.
Jetzt aber:
Code:
'eine Variante
Dim i As Long
Dim arr
arr = Array("Supply Lot#01", "Supply Lot#02", "Supply Lot#03", "Supply Lot#04")
For i = 0 To UBound(arr) - 1
'hier kpiervorgang
Sheets(i).Copy
Next i
'eine andere Variante (Ausschluss der nicht zu kopierenden Tabellen
' Dim i As Long
For i = 1 To Sheets.Count
Select Case Sheets(i).Name
Case "Purchasing ", "Summary"
Case Else
'hier kpiervorgang
Sheets(i).Copy
End Select
Next i
End Sub
Gruß Atilla