Hallo,
ich habe soeben eine Calc-Datei mit insgesamt 31 willkürlich nacheinander eingefügten und benannten Tabellenblättern angelegt. Diese müsste ich nun alphabetisch hintereinander anzeigen lassen.
Ist eine alphabetische Sortierung möglich? Wenn ja - wie?
Danke,
Gruß,
Rebecca
Tabellenblätter alphabetisch sortieren?
Moderator: Moderatoren
Re: Tabellenblätter alphabetisch sortieren?
Hallo,RS hat geschrieben: Ist eine alphabetische Sortierung möglich? Wenn ja - wie?
habe das gleiche Problem. Nimm doch den Dialog kopieren/verschieben - ist aber recht umständlich, da Du wohl nur das Blatt ans Ende stellen kannst. ;-(
Kann der Navigator nicht eine Sortierfunktion von den Entwicklern spendiert bekommen?
Grüße
MS Office ist out! 

Hi,
hatte die Anfrage auch noch auf der User-Mailingliste gepostet, dabei kam ein Makro raus, den ich allerdings nie ausprobiert habe, da ich das manuelle Verschieben in meinem Fall einfacher und ausreichend fand.
Falls Du das Makro - ohne Gewähr - haben möchtest, kann ich es Dir schicken, allerdings erst nächste Woche, da ich jetzt ins Wochenende gehe.
Gruß,
Rebecca
hatte die Anfrage auch noch auf der User-Mailingliste gepostet, dabei kam ein Makro raus, den ich allerdings nie ausprobiert habe, da ich das manuelle Verschieben in meinem Fall einfacher und ausreichend fand.
Falls Du das Makro - ohne Gewähr - haben möchtest, kann ich es Dir schicken, allerdings erst nächste Woche, da ich jetzt ins Wochenende gehe.
Gruß,
Rebecca
Ich habe schnell mal zwei neue Makros zum Sortieren der Tabellenblätter geschrieben, diese einfach in eine Makrobibliothek von OOo kopieren und mit einer Schaltflche verknüpfen:
Gruß
Stephan
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 LCase(a(i)) < LCase(a(j)) Then Goto z
temp = a(i)
a(i) = a(j)
a(j) = temp
z: Next j
Next i
For i = 0 to anz-1
dok.Sheets.moveByName(a(i),i)
Next i
End Sub
Code: Alles auswählen
Sub Sortieren_fallend()
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 LCase(a(i)) > LCase(a(j)) Then Goto z
temp = a(i)
a(i) = a(j)
a(j) = temp
z: Next j
Next i
For i = 0 to anz-1
dok.Sheets.moveByName(a(i),i)
Next i
End Sub
Gruß
Stephan
Hey Stephan,
bitte, bitte nicht....
Wir wollen doch auch einen "modernen" und "guten" Programmierstii pflegen
"GoTo" ist "deprecated" und sollte nicht mehr angewendet werden - auch wenn es natürlich funktioniert. Ausnahme: "On error goto marke"
Bitte einfach ohne "goto" schreiben - der Bubble-Sort Allgoythmus funktioniert genauso. Einfach die Bedingung "rumdrehen":
Oder - noch einfacher - das "Kleinerzeichen" rumdrehen 
Gruss
Thomas
bitte, bitte nicht....

Code: Alles auswählen
if LCase(a(i)) < LCase(a(j)) Then Goto z
....
z:[/quote]

"GoTo" ist "deprecated" und sollte nicht mehr angewendet werden - auch wenn es natürlich funktioniert. Ausnahme: "On error goto marke"
Bitte einfach ohne "goto" schreiben - der Bubble-Sort Allgoythmus funktioniert genauso. Einfach die Bedingung "rumdrehen":
Code: Alles auswählen
For j = i+1 to anz-1
if not (LCase(a(i)) < LCase(a(j))) Then
temp = a(i)
a(i) = a(j)
a(j) = temp
end if
Next j

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Thomas,
hast ja recht
... bereits als ich vor 20 Jahren Basic gelernt habe war nicht schön, aber manchmal kommt das ebend immer wieder durch dieses GoTo hier und GoTo da wenn ich nicht aufpasse.
Gruß
Stephan
bitte, bitte nicht....
...
Wir wollen doch auch einen "modernen" und "guten" Programmierstii pflegen
hast ja recht

... bereits als ich vor 20 Jahren Basic gelernt habe war nicht schön, aber manchmal kommt das ebend immer wieder durch dieses GoTo hier und GoTo da wenn ich nicht aufpasse.
Gruß
Stephan