Hi Peter,
hier der Code nochmal mit Kommentaren:
Sub TabsAuswaehlen()
Dim wksTab As Worksheet
Dim arrTabs()
Dim lngZaehler As Long
' Schleife über alle Tabellenblätter
For Each wksTab In Worksheets
' Auswahl entsprechend Codename des laufenden Blattes
Select Case wksTab.CodeName
' Codenamen der Blätter die berücksichtigt werden sollen
Case "Tabelle1", "Tabelle2", "Tabelle3"
' erweitere das Array von Feld 0 bis laufenden Zähler
' und behalte dabei die bereits eingelesenen Inhalte bei
ReDim Preserve arrTabs(0 To lngZaehler)
' in laufendes Arrayfeld den Namen vom Reiter des Blattes eintragen
arrTabs(lngZaehler) = wksTab.Name
' Zähler um 1 erhöhen
lngZaehler = lngZaehler + 1
End Select
Next wksTab
' erstels Arrayfeld ist nicht leer, also wurden Blattnamen eingetragen
' deshalb können die im Array enthaltenen Blätter selektiert werden
If arrTabs(0) <> "" Then Worksheets(arrTabs()).Select
End Sub
In der Zeile ReDim Preserve arrTabs(0 To lngZaehler) wird das Array immer wieder neu dimensioniert, d.h. es wird in jedem Schleifendurchlauf um jeweils 1 Feld erweitert, wobei die Inhalte der bereits belegten Felder erhalten bleiben - dies bewirkt der Parameter Preserve (=bewahre). Im 1. Schleifendurchlauf wird das Array von 0 bis 0 dimensioniert (1. Arrayfeld ist standardmäßig immer das 0. Feld) und dann der Name des laufenden Blattes eingetragen. Beim 2. Schleifendurchlauf wird das Array von 0 bis 1 dimensioniert, erhält also ein weiteres Feld in das der Name des nächsten laufenden Blattes eingetragen wird das der Case-Bedingung entspricht. Beim 3. Durchlauf wird das Array von 0 bis 2 dimensioniert, hat nun also 3 Felder und das 3. Blatt welches der Bedingung entspricht wird eingetragen. Das Array wird immer nur dann im ein Feld erweitert, wenn ein Blattname den festgelegten Codenamen entspricht.
Ich bin davon ausgegangen, dass mehr als nur die zu selektierenden Blätter in der Mappe vorhanden sind. Der Code macht also nicht anderes als dynamisch alle Blattnamen in das Array einzutragen, welche der im Case festgelegten Bedingung entsprechen.
Bis später, Karin