Anzeige
Archiv - Navigation
1536to1540
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bis Blatt xy Zählen dann aufhören

Bis Blatt xy Zählen dann aufhören
24.01.2017 08:49:20
Max2
Hallo Leute,
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?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bis Blatt xy Zählen dann aufhören
24.01.2017 08:54:18
hary
Moin
Reicht nicht einfach:
Worksheets.Count - 1

gruss hary
AW: Bis Blatt xy Zählen dann aufhören
24.01.2017 08:54:58
EtoPHG
Hallo Max,
Zitate:
ich möchte per Function Tabellenblätter zählen
Oder würdet ihr es ganz anders machen?
Ja. Z.B. ganz einfach mit ThisWorkbook.Worksheets.Count, aber anscheinend willst du was ausschliessen oder du hast Regeln im Kopf für das Zählen, die sich aus der Anfrage nicht erschliessen!
Gruess Hansueli
AW: Bis Blatt xy Zählen dann aufhören
24.01.2017 09:06:22
Max2
Danke erstmal für eure Antworten.
Ja es hat einen Grund dass ich eine Function nehmen will und nicht .Count
Es werden von Nutzer bestimmte Tabellenblätter angelegt, manche sollen dann von einem Makro bearbeitet werden und manche eben nicht.
Deshalb verschiebe ich Blätter mit einem Bestimmten Kriterium, welches im Namen enthalten ist, vor das Blatt "Übersicht".
Die Blätter die bearbeitet werden sollen haben kein Kriterium im Namen... auch wenn ich das wollte aber der Nutzer ist eigen, deshalb wollte ich dass so regeln.
Anschließend bearbeitet das Makro nacheinander alle Blätter deren Index größer Index(Übersicht) ist.
Anzeige
Wat de nun? VOR oder NACH der Übersicht?
24.01.2017 09:53:08
EtoPHG
Hallo Max,
Zitat: verschiebe ich Blätter.... vor das Blatt "Übersicht"
widerspricht:
Zitat: alle Blätter deren Index größer Index(Übersicht) ist
VOR oder NACH dem Blatt "Übersicht" ?
Gruess Hansueli
AW: Wat de nun? VOR oder NACH der Übersicht?
24.01.2017 10:13:54
Max2
Verschiebe Blätter die ich nicht brauche VOR und Blätter die ich brauche HINTER Übersicht durch ein anderes Makro
Somit will ich nur die Blätter HINTER Übersicht ansprechen, deshalb Index GRÖßER Index(Übersicht)
Eine einfache Subtraktion....
24.01.2017 10:32:55
EtoPHG
führt dann auch zum Ziel, Max
Statt einer Function:
ThisWorkbook.Worksheets.Count - ThisWorkbook.Worksheets("Übersicht").Index
ergibt deine gesuchte Anzahl.
Oder für das Behandeln mit Code:
    Dim lWSix As Long
For lWSix = ThisWorkbook.Worksheets("Übersicht").Index + 1 To ThisWorkbook.Worksheets.Count
MsgBox ThisWorkbook.Worksheets(lWSix).Name & " mit Makrocode behandeln!"
Next lWSix
Gruess Hansueli
Anzeige
AW: Eine einfache Subtraktion....
24.01.2017 11:05:26
Max2
Oh man stimmt, vielen Dank!
Gelöst, Danke Hansueli!
24.01.2017 11:06:26
Max2

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige