ich möchte per Function Tabellenblätter zählen, das klappt auch.
Hier erstmal Code, dann kommt das Problem:
Public Function anzahl_blatt() As Integer
Dim wb As Workbook
Dim ws As Worksheet
Dim index As Integer
Set wb = ThisWorkbook
With wb
For Each ws In wb.Sheets
If ws.Name = "Übersicht" Then
index = index + 1
anzahl_blatt = index
Exit Function
Else
index = index + 1
End If
Next ws
End With
End Function
Die Function ist wirklich nicht schön, das Abbruchkriterium ist das Sheet mit dem Namen "Übersicht".Ich würde es gerne mit einer "Do Until" Schleife Lösen, da bekomme ich allerdings die Meldung dass die Objektvariable oder With Variable von ws nicht Festgelegt ist.
Der Code wäre dann wie folgt:
Public Function anzahl_blatt() As Integer
Dim wb As Workbook
Dim ws As Worksheet
Dim index As Integer
Set wb = ThisWorkbook
With wb
Do Until ws.Name = "Übersicht"
index = index + 1
anzahl_blatt = index
Loop
End With
End Function
Wenn ich vorher "For Each ws In wb.Sheets" schreibe kommt er in eine Dauerschleife da er dann beim ersten Tabellenblatt stecken bleibt.Was muss ich ergänzen dass es mit einer Do Until Schleife läuft?
Oder würdet ihr es ganz anders machen?