Seite 1 von 1

Mit Makro Sheet mit höchster Zahl im Sheet-Namen aktivieren

Verfasst: Sa, 27.05.2023 17:41
von Rupp
Liebe Forumsfreunde,
ich bräuchte ein Möglichkeit, um mit einem Makro zum letzten Sheet zu wechseln, bzw. es zu aktivieren.
Meine Sheet-Namen bestehen jeweils aus Jahreszahlen, also z.B.
Sheet1-Name = 2020
Sheet2-Name = 2021
Sheet3-Name = 2022
Sheet4-Name = 2023
Wechseln und aktivieren möchte ich nun per Makro zum Sheet mit der höchsten Zahl im Namen, in meinem Beispiel als zum Sheet "2023".
Wer kann mir hier mit einem einfach Code helfen?
Herzlichen Dank schon einmal im voraus :-)
Rupp

Re: Mit Makro Sheet mit höchster Zahl im Sheet-Namen aktivieren

Verfasst: Sa, 27.05.2023 18:14
von Rupp
Krass: ChatGPT hat mir mal eben das Makro geschrieben:

Code: Alles auswählen

Sub AktiviereLetztesJahresblatt
    Dim oDoc As Object
    Dim oSheets As Object
    Dim oSheet As Object
    Dim i As Integer
    Dim maxYear As Integer
    Dim maxYearSheet As Object

    oDoc = ThisComponent
    oSheets = oDoc.getSheets()
    maxYear = 0

    For i = 0 To oSheets.getCount() - 1
        oSheet = oSheets.getByIndex(i)
        If IsNumeric(oSheet.Name) And CInt(oSheet.Name) > maxYear Then
            maxYear = CInt(oSheet.Name)
            maxYearSheet = oSheet
        End If
    Next i

    If Not IsEmpty(maxYearSheet) Then
        oDoc.CurrentController.setActiveSheet(maxYearSheet)
    End If
End Sub

Re: Mit Makro Sheet mit höchster Zahl im Sheet-Namen aktivieren

Verfasst: Sa, 27.05.2023 21:02
von Karolus
Hallo
falls das einfach nur das letzte Tabellenblatt ist, gehts krass mit 5 Zeilen:

Code: Alles auswählen

sub activate_last_sheet
	doc = thisComponent
	sheets = doc.Sheets
	doc.CurrentController.setActiveSheet(sheets(sheets.Count -1))
end sub

Re: Mit Makro Sheet mit höchster Zahl im Sheet-Namen aktivieren

Verfasst: So, 28.05.2023 10:31
von Rupp
Danke Karolus,
leider kann es bei mir sein, dass das Sheet mit der höchsten Jahreszahl nicht gleichzeitig das letzte Sheet ist.
Deshalb war der kompliziertere Ansatz nötig!