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

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Rupp
**
Beiträge: 46
Registriert: Mi, 27.01.2010 08:33
Kontaktdaten:

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

Beitrag 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
Rupp
**
Beiträge: 46
Registriert: Mi, 27.01.2010 08:33
Kontaktdaten:

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

Beitrag 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
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

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

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Rupp
**
Beiträge: 46
Registriert: Mi, 27.01.2010 08:33
Kontaktdaten:

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

Beitrag 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!
Antworten