Tabellenblätter alphabetisch sortieren?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Tabellenblätter alphabetisch sortieren?

Re: Tabellenblätter numerisch sortieren [Python]?

von Karolus » Sa, 03.04.2021 09:58

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

Re: Tabellenblätter alphabetisch sortieren?

von Stephan » Mo, 29.03.2021 11:13

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

Nach oben