Ich möchte alle Tabellennamen, der Tabellen größer Sheets("Formular").Index
in ein Datenfeld einlesen.
Wie stelle ich das an?
Könnt ihr mir bitte helfen.
MfG Charly
Option Explicit
Sub BlattNamen()
Dim ff As Long, ii As Long, strNamen() As String
ff = Sheets("Formular").Index
ReDim strNamen(1 To Sheets.Count - ff)
For ii = 1 To UBound(strNamen)
strNamen(ii) = Sheets(ii + ff).Name
Next ii
End Sub
Zur Bezeichnung: "Tabelle" ist in Excel etwas anderes als "Blatt" oder "Tabellenblatt".
Option Explicit
Sub BlattNamen()
Dim ff As Long, ii As Long, strNamen() As String
' Liste in Array strNamen erstellen
ff = Worksheets("Formular").Index
ReDim strNamen(1 To Worksheets.Count - ff)
For ii = 1 To UBound(strNamen)
strNamen(ii) = Worksheets(ii + ff).Name
Next ii
' alle Blätter der Liste kopieren
For ii = 1 To UBound(strNamen)
MsgBox strNamen(ii) ' zum Testen
' Worksheets(strNamen(ii)).Copy ' wohin?
Next ii
End Sub
Sub KopierenBlaetter()
Dim ii As Long
' alle Blätter mit Index größer als "Formular"-Index kopieren
For ii = Worksheets("Formular").Index + 1 To Worksheets.Count
MsgBox Worksheets(ii).Name ' zum Testen
' Worksheets(ii).Copy ' wohin?
Next ii
End Sub
(Die Copy-Zeilen habe ich zum Testen auskommentiert, ich weiß eh nicht, wohin.)
Sub BlattNamen()
Dim ff As Long, ii As Long
Dim varNamen
ff = Sheets("Formular").Index
ReDim varNamen(1 To Sheets.Count - ff)
For ii = 1 To UBound(varNamen)
varNamen(ii) = Sheets(ii + ff).Name
Next ii
Sheets(varNamen).Select
End Sub