Seite 1 von 1
Zeilen bestimmter Spalten sortieren
Verfasst: Di, 17.07.2018 19:00
von Tabellenfeind
Hi,
Ich verstehe leider die Funktionsweise der integrierten sortierfunktion nicht so richtig.
Ich habe in meinem sheet 4 Tabellen nebeneinander, jede mit 5 Spalten. Jede der Tabellen beginnt mit einer Spalte in die ein Datum eingetragen wird und endet mit einer Spalte in die ein Geldbetrag eingetragen wird.
Ich würde gerne jede der Tabellen Standard mäßig nach Datum sortiert haben, mit der Möglichkeit sie gelegentlich nach der Höhe des Geldbetrags sortieren zu lassen. Wie mache ich das am besten, so dass alle Tabellen unabhängig von einander bleiben?
Vielen Dank im Voraus
Re: Zeilen bestimmter Spalten sortieren
Verfasst: Do, 19.07.2018 13:03
von Tabellenfeind
Danke für die Info, damit sind meine Tabellen schon mal unabhängig. Ich würde es aber gerne so haben, dass ich die Tabellen nach Datum und nach Geldbetrag auf Knopfdruck sortieren kann. Wie mache ich das denn am besten?
Re: Zeilen bestimmter Spalten sortieren
Verfasst: Do, 19.07.2018 19:48
von lorbass
Tabellenfeind hat geschrieben: ↑Do, 19.07.2018 13:03
Ich würde es aber gerne so haben, dass ich die Tabellen nach Datum und nach Geldbetrag auf Knopfdruck sortieren kann. Wie mache ich das denn am besten?
Um eine bestimmte von mehreren Tabellen auf einem Arbeitsblatt zu sortieren, markiere zunächst den zu sortierenden Bereich, also den Zellbereich, den die gewünschte Tabelle auf dem Arbeitsplatz einnimmt. Öffne dann durch Wahl des Menüpunktes
Daten → Sortieren… den Dialog
Sortieren auf. Dort kannst du die Sortierkriterien festlegen und die Sortierung anstoßen.
So geht's mit einer bestimmten Tabelle „zu Fuß“. Um das Ganze „auf Knopfdruck“ ausführen zu lassen, musst du ein Makro programmieren und es mit dem „Knopf“ verbinden.
Hilfestellung bei der Progammierung erhältst du im Bereich
Makros und allgemeine Programmierung.
Gruß
lorbass
Re: Zeilen bestimmter Spalten sortieren
Verfasst: Do, 19.07.2018 22:06
von Stephan
ich habe mal schnell mit dem Makrorekorder und ein paar händischen Codezeilen etwas zusammengeklickt was prinzipiell funktioniert, allein ist die Bedienung nicht so ganz optimal und es wird nicht auf die richtige Markierung geprüft.
Das Ganze soll lediglich eine erste Anregung sein, mir ist es momentan zu aufwändig das alles zu perfektionieren.
-In anhängender Datei zunächst eine Zelle in der Spalte markieren , nach welcher sortiert werden soll (die Markierung muss innerhalb der jeweiligen gefüllten Teiltabelle sein)
-dann im Menü (ganz rechts) Sortieren-aufwärts sortieren oder abwärts sortieren klicken und es wird sortiert
der Code ist lediglich Folgender:
Code: Alles auswählen
sub aufwaerts()
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(6) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ByRows"
args1(0).Value = true
args1(1).Name = "HasHeader"
args1(1).Value = true
args1(2).Name = "CaseSensitive"
args1(2).Value = false
args1(3).Name = "IncludeAttribs"
args1(3).Value = true
args1(4).Name = "UserDefIndex"
args1(4).Value = 0
args1(5).Name = "Col1"
args1(5).Value = ThisComponent.getCurrentSelection.RangeAddress.Startcolumn + 1
args1(6).Name = "Ascending1"
args1(6).Value = false
dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args1())
end sub
sub abwaerts()
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(6) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ByRows"
args1(0).Value = true
args1(1).Name = "HasHeader"
args1(1).Value = true
args1(2).Name = "CaseSensitive"
args1(2).Value = false
args1(3).Name = "IncludeAttribs"
args1(3).Value = true
args1(4).Name = "UserDefIndex"
args1(4).Value = 0
args1(5).Name = "Col1"
args1(5).Value = ThisComponent.getCurrentSelection.RangeAddress.Startcolumn + 1
args1(6).Name = "Ascending1"
args1(6).Value = true
dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args1())
end sub
Gruß
Stephan