von Stephan » Do, 19.07.2018 22:06
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
- Dateianhänge
-
- Sortieren.ods
- (14.09 KiB) 281-mal heruntergeladen
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]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
[/code]
Gruß
Stephan