BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!

DANKE >><< DANKE

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗

Makro mit SORT

Alles zur Programmierung im OpenOffice.org
Antworten
MaxM
Beiträge: 17
Registriert: Di 10. Dez 2013, 18:04

Makro mit SORT

Beitrag von MaxM » So 27. Mär 2016, 16:50

Zunächst Frohe Ostern allen.

AuFgabe: Die Funktion sortieren (normal erreichbar über Daten> sortieren) soll Bestanteil eines größeren M;akro sein und automatisch ablaufen,
Ich habe folgendes Programm gefunden ( über "Makro aufzeichnen":
REM ***** BASIC *****


sub Main
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(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$C$100:$D$108"

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

rem ----------------------------------------------------------------------
dim args2(8) 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 =3
args2(6).Name = "Ascending1"
args2(6).Value = true
args2(7).Name = "Col2"
args2(7).Value =4
args2(8).Name = "Ascending2"
args2(8).Value =true

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


end sub folgende Fragen;
args2(1) "Hasfeader" hat sicher nix mit heute zu tun,
args2(5) und (7) "Col1(2)" hat den Wert 3 bzw.5. Welche Wertliste gibt es und was bewirken die Werte?
Col1 bzw, Col2 ist die Sortrichtung je Spalte; sicher können auch mehrere Spalten mit Args2(...) aufgeführt werden.
Wenn jemand Lust hat, mich aufzuklären; wäre schön.

Max

karolus
Beiträge: 651
Registriert: Di 23. Feb 2010, 12:07

Re: Makro mit SORT

Beitrag von karolus » So 27. Mär 2016, 20:12

Hallo

Code: Alles auswählen

args2(0).Name = "ByRows"
args2(0).Value = true

args2(1).Name = "HasHeader" #erste als Überschrift von Sortierung ausnehmen?
args2(1).Value = false            # nein!

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" # nach welcher Spalte wird zuerst sortiert ?
args2(5).Value =3        # nach Spalte C →→ Nummer 3…
args2(6).Name = "Ascending1"
args2(6).Value = true   # … und zwar aufsteigend

args2(7).Name = "Col2" # nach welcher Spalte wird dann sortiert ?
args2(7).Value =4        # nach Spalte D →→ Nummer 4…
args2(8).Name = "Ascending2"
args2(8).Value =true    #… ebenfalls aufsteigend!
 

Wanderer
Beiträge: 103
Registriert: Mo 19. Mai 2014, 21:33

Re: Makro mit SORT

Beitrag von Wanderer » So 27. Mär 2016, 20:25

Hallo,

zunächst mal: Dein Code sollte zwischen die beiden code-Tags, die beim Drücken auf den Code-Button erzeugt werden.
Du musst den Cursor manuell dazwischen positionieren.

Ansonsten genauer hinschauen:
MaxM hat geschrieben: folgende Fragen;
args2(1) "Hasfeader" hat sicher nix mit heute zu tun,
args2(5) und (7) "Col1(2)" hat den Wert 3 bzw.5. Welche Wertliste gibt es und was bewirken die Werte?
Col1 bzw, Col2 ist die Sortrichtung je Spalte; sicher können auch mehrere Spalten mit Args2(...) aufgeführt werden.
Wenn jemand Lust hat, mich aufzuklären; wäre schön.

Max
Nicht "Hasfeader" sondern "HasHeader" - dürfte angeben ob Überschriften in der ersten Zeile stehen, die nicht mitsortiert werden sollen.

args2(5) und (7) haben die Bezeichnung (Name) Col1 und Col2 und die Werte 3 bzw. 4 .
Direkt danach folgt jeweils ein Argument ((6) und (8) mit der verdächtigen Bezeichnung Ascending1/2 und Wert true.
Ich würde also annehmen, daß Du nach 2 Spalten (3 und 4) jeweils aufsteigend sortiert hast.
Bliebe zu klären, ob die Zählung bei 0 oder 1 für Spalte A anfängt.

Viel Spaß beim ausprobieren (hab ich noch nicht gemacht).
Du kannst Deine Erkenntnisse dann gern auch hier anhängen.

MfG, Jörn

PS: Karolus schreibt schneller als ich ;)

MaxM
Beiträge: 17
Registriert: Di 10. Dez 2013, 18:04

Re: Makro mit SORT

Beitrag von MaxM » Mo 28. Mär 2016, 09:58

Ich fasse mich lieber kurz. Danke.
Was 2 und 4 bedeutet, blieb offen. ascending war mir nicht suspekt. Es ging um die Frage, ob man beliebig viele Spalten oder welch max. benennen kann.Ob nun Spalte A = 0 oder =1 ist, spielt bei der geforderten (üblichen ) Eingabe einer "Range" mit "$A$n:$X$n" keine Rolle.
Danke jedenfalls für die große Mühe, mit den Unzulänglichkeiten meines Beitrags zurech zu kommen. Ich betrachte das Thema für erledigt, die restlichen Frage kläre ich selbst.

Max

Wanderer
Beiträge: 103
Registriert: Mo 19. Mai 2014, 21:33

Re: Makro mit SORT

Beitrag von Wanderer » Mo 28. Mär 2016, 18:13

MaxM hat geschrieben:Ich fasse mich lieber kurz. Danke.
Was 2 und 4 bedeutet, blieb offen.
...
Kein Wunder. Du hast die Frage nicht gestellt:
MaxM hat geschrieben:folgende Fragen;
args2(1) "Hasfeader" hat sicher nix mit heute zu tun,
args2(5) und (7) "Col1(2)" hat den Wert 3 bzw.5. Welche Wertliste gibt es und was bewirken die Werte?
Col1 bzw, Col2 ist die Sortrichtung je Spalte; sicher können auch mehrere Spalten mit Args2(...) aufgeführt werden.


MfG, J.

Antworten