Seite 1 von 1

Daten sortieren (Makro)

Verfasst: Do, 26.08.2004 17:47
von mecki_45
Hallo zusammen,
noch ne Frage:

Wie kann ich eine Tabelle nach bestimmten Kriterien sortieren (2 oder mehr)?

Dank im voraus
Alex

Verfasst: Mo, 06.09.2004 18:05
von mecki_45
Hallo zusammen,

das Aufzeichnen par Makrorecorder bringt leider nicht den Erfolg, den ich wünsche - es klappt nicht.
In den Dokumentationen, die ich gefunden habe (SUN-Basic-Referenz, Developers Guide) finde ich hierzu keinen Hilfeansatz.

Hat jemand in der Runde dies schon mal probiert und kann mir einen Tipp geben?

Bin für jeden Tipp dankbar


Grüßle aus dem Schwabenländle
Alex

Verfasst: Mo, 06.09.2004 20:14
von Stephan
Also ich kann das aufzeichnen. Das folgende Makro sortiert die Werte erst aufsteigend nach Spalte A und anschließend aufsteigend nach Spalte B:

Code: Alles auswählen

sub Spalte_A_B
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 args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$A$1"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())

rem ----------------------------------------------------------------------
dim args2(6) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ByRows"
args2(0).Value = true
args2(1).Name = "HasHeader"
args2(1).Value = false
args2(2).Name = "CaseSensitive"
args2(2).Value = false
args2(3).Name = "IncludeAttribs"
args2(3).Value = true
args2(4).Name = "UserDefIndex"
args2(4).Value = 0
args2(5).Name = "Col1"
args2(5).Value = 1
args2(6).Name = "Ascending1"
args2(6).Value = true

dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args2())

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 = false
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 = 2
args1(6).Name = "Ascending1"
args1(6).Value = true

dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args1())

end sub
Stephan

Verfasst: Mo, 06.09.2004 20:51
von mecki_45
Hallo Stephan,

wieso funktioniert der Makrorecorder bei Dir und bei mir nicht?
Hast Du eine *Spezial*-Version?
Ich arbeite unter WinXP (SP2) mit OO (1.1.2)

Hab's mehrfach probiert, aber OO will bei mir nicht.


Danke für dies Makro, jetzt schaff ich mal weiter.

Grüßle
Alex