Spalten / Zellbereiche markieren und sortieren

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Spalten / Zellbereiche markieren und sortieren

von Sven » Mi, 15.02.2006 09:30

Hallo Klaus,

das sind wirklich umfangreiche Beispiele und ich bin fündig geworden. Das folgende Makro werde ich für meine Zwecke anpassen.

Sub Sortieren2
Dim objDatei as Object
Dim objBlatt As Object
Dim objBereich As Object
Dim SortierKrit(3) As new com.sun.star.beans.PropertyValue
Dim SortierFeld(1) As new com.sun.star.table.TableSortField

objDatei = ThisComponent
objBlatt = objDatei.Sheets(4)
objBereich = objBlatt.getCellRangeByName("A1:C7")

SortierFeld(0).Field = 2
SortierFeld(0).IsAscending = True
SortierFeld(0).FieldType = com.sun.star.util.SortFieldType.ALPHANUMERIC
SortierFeld(1).Field = 0
SortierFeld(1).IsAscending = True
SortierFeld(1).FieldType = com.sun.star.util.SortFieldType.ALPHANUMERIC

SortierKrit(0).Name = "SortFields"
SortierKrit(0).Value = SortierFeld()
SortierKrit(1).Name = "SortColumns"
SortierKrit(1).Value = False
SortierKrit(2).Name = "ContainsHeader"
SortierKrit(2).Value = true
SortierKrit(3).Name = "IsCaseSensitive"
SortierKrit(3).Value = false

objBereich.Sort(SortierKrit())

End Sub



Dank dir Klaus - Gruß nach Bayern.
Sven

von kannenklaus » Di, 14.02.2006 16:55

hallo sven,

inzwischen gibt es mehrere bücher zur programmierung von openoffice. eines davon enthält auch beispiele zur sortierung von daten. die dateien kann mit den entsprechenden makros kann man runterladen.


http://www.compurem.de/ooo/Buchbeispiele.zip

dort ist es die folgende datei, die für dich von interesse sein könnte:

tabellen.sxc

grüße klaus

von RS » Di, 14.02.2006 13:11

Hallo Sven,

leider verstehe ich von Makro-PROGRAMMIERUNG nichts, der Makro-Recorder war für mich bisher immer ausreichend, oder ich fand irgendwo vorgefertigte Makros, oder das was ich wollte ging ganz einfach nicht...

Ich könnte Dir höchstens noch ein paar allgemeine Recherche-Tipps / Links geben, ob die Dir allerdings weiterhelfen weiß ich nicht, und Du scheinst ja von den Hintergründen mehr Ahnung zu haben als ich...

Hier im Forum ist Thomas = Toxitom einer der Cracks, auch auf diesem Gebiet. Ich wünsche Dir auf jeden Fall, dass er bzw. irgendjemand anders Dir konkret helfen kann.

Viel Erfolg,

Gruß,

Rebecca

von Sven » Di, 14.02.2006 13:06

Hallo Rebecca,

ja, der Makro Rekorder war ja auch mein erster Gedanke. Der Greift in meinem Fall allerdings zu kurz, da ich in Abhängigkeit einer vorgeschalteten Logik unterschiedliche Fälle unterscheiden muß.

Genauer: Erst die Auswertung der Daten bestimmt welche Spalten zu sortieren sind. Ich gebrauche somit Zugriff auf einen Parameter, der vorgibt welcher Zellbereich oder Welche Spalten zu sortieren sind.

Im automatisch generierten Makro erkenne ich derartige Parameter nicht.
Ganz konkret sieht das aufgezeichnete Makro so aus:

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 = 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 = 3
args1(6).Name = "Ascending1"
args1(6).Value = true
dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args1())
end sub


Siehst du noch andere Möglichkeiten das Problem anzugehen?
Gruß
Sven

von RS » Di, 14.02.2006 12:02

Hallo Sven,

das sollte mit dem Makrorekorder eigentlich einwandfrei funktionieren. Habe es eben mit einer kleinen Testtabelle durchgeführt, funktionierte m.E. nach einwandfrei. Hast Du es damit schon probiert?

Gruß,

Rebecca

Spalten / Zellbereiche markieren und sortieren

von Sven » Di, 14.02.2006 11:35

Hallo,

ich möchte per Basic-Makro in Calc einen Zellbereich oder gleich mehrere Spalten markieren und aufsteigend sortieren lassen. Die Spalte C soll z.B. als Sortierreferenz dienen.
Ich bin für alle Lösungsansätze dankbar.
Gruß
Sven

Nach oben