Seite 1 von 1

Re: Tabellenblätter alphabetisch sortieren?

Verfasst: Mo, 29.03.2021 11:13
von Stephan
Bitte keine alten Threads verlängern! Ich habe Deinen Post jetzt in einen neuen Thread abgetrennt.

Antwort ist:
WEnn die Tabellenblätter nur aus Ziffern bestehen reicht VAL statt LCase:

Code: Alles auswählen

Sub Sortieren_steigend()
	dok = StarDesktop.CurrentComponent
	anz = dok.Sheets().Count
	dim a(anz-1)
	For i = 0 to anz-1
		a(i) = dok.Sheets(i).Name
	Next
	For i = 0 To anz-2
		For j = i+1 to anz-1
			If VAL(a(i)) > VAL(a(j)) Then
				temp = a(i)
				a(i) = a(j)
				a(j) = temp
			End If
		Next j
	Next i
	For i = 0 to anz-1 
		dok.Sheets.moveByName(a(i),i)
	Next i
End Sub

Gruß
Stephan

Re: Tabellenblätter numerisch sortieren [Python]?

Verfasst: Sa, 03.04.2021 09:58
von Karolus
Hallo
Das umständliche Herausziehen der Tabellennamen kann man sich ersparen, weil die eh schon in doc.Sheets.ElementNames drinstecken,
Nimmt man dann Python brauchts auch keinen Handgedrechselten Bubble Sort Algoritmus, bei numerischen Tabellennamen muss dann auch nur noch key=int mitgegeben werden:

Code: Alles auswählen

def sort_numeric_sheetnames():
    doc = XSCRIPTCONTEXT.getDocument()
    sheets = doc.Sheets
    sheetnames = sorted(sheets.ElementNames, key=int)
    for i, name in enumerate(sheetnames):
        sheets.moveByName(name, i)
karolus