Hi
'Mein' Fehler war ganz einfach, ich habe in der falschen Tabelle die
falsche Spalte sortiert.
Nur, die falschen Indexwerte der Tabellen und Spalten habe ich nicht
eingegeben, sondern mir vom Sortier-Programm ermitteln lassen.
Auf diese 'Falle' war ich dann allerdings nicht vorbereitet:
Manchmal hat zB. die erste Tabelle den Index-Wert 0 manchmal 1 und
manchmal hat die Spalte J den Index 9, manchmal 10 ;)
Hier (über Recording Makro) springe ich zur ersten Tabelle, die ich dann
im folgenden sortieren kann:
> dim args1(0) as new com.sun.star.beans.PropertyValue
> args1(0).Name = "Nr"
> args1(0).Value = 1
>
> oDispat.executeDispatch(oDocFrame, ".uno:JumpToTable", "", 0, args1())
Hier hat Tabelle 1 den Index 1 und Spalte 1 ist die erste (J=10) :)
Aber mit dieser Routine (Frieders und A.Pytoniak) haben die erste
Tabelle und die erste Tabelle den Index 0:
> oSheet = ThisComponent.Sheets(0) ' = erste Tabelle
> oRange = oSheet.getCellRangeByName("B28:D33")
> oSortFields(0).Field = 0 ' = erste Spalte
> oSortFields(0).SortAscending = FALSE
> REM Set the sort fields to use
> oSortDesc(0).Name = "SortFields"
> oSortDesc(0).Value = oSortFields()
> REM Now sort the range!
> oRange.Sort(oSortDesc())
Hony soit qui mal y pense!
Herzlichen Dank noch einmal
Gooly
Am 28.10.2011 17:30, schrieb gooly:
Ich habe jetzt einen anderen Weg versucht,
endlich die Tabelle zu sortieren - auch das geht nicht??
Über Makro-aufzeichnen kam ich hierzu, wobei ich jetzt die Werte der Sub
übergebe:
> mySort("$A$2", "$A$2:$V$403", 9)
sub mySort (topLeft as String, sRange as String, sortColumn as Integer)
rem
----------------------------------------------------------------------
rem define variables
dim oDocSort as object
dim oDispat as object
rem
----------------------------------------------------------------------
rem get access to the oDocSort
oDocSort = ThisComponent.CurrentController.Frame
oDispat = createUnoService("com.sun.star.frame.DispatchHelper")
rem
----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 1
oDispat.executeDispatch(oDocSort, ".uno:JumpToTable", "", 0, args1())
rem
----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = topLeft ' "$A$2"
oDispat.executeDispatch(oDocSort, ".uno:GoToCell", "", 0, args2())
rem
----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = sRange ' "$A$2:$V$403"
oDispat.executeDispatch(oDocSort, ".uno:GoToCell", "", 0, args3())
rem
----------------------------------------------------------------------
dim args4(9) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ByRows"
args4(0).Value = true
args4(1).Name = "HasHeader"
args4(1).Value = false
args4(2).Name = "CaseSensitive"
args4(2).Value = false
args4(3).Name = "NaturalSort"
args4(3).Value = false
args4(4).Name = "IncludeAttribs"
args4(4).Value = true
args4(5).Name = "UserDefIndex"
args4(5).Value = 0
args4(6).Name = "Col1"
args4(6).Value = sortColumn
args4(7).Name = "Ascending1"
args4(7).Value = true
args4(8).Name = "Col2"
args4(8).Value = 2
args4(9).Name = "Ascending2"
args4(9).Value = false
oDispat.executeDispatch(oDocSort, ".uno:DataSort", "", 0, args4())
end sub
Damit kriege ich die Sortierresultat (??? ratlos)
Spalte "J" = 9
LotsMultiplier=1.5
LotsMultiplier=1.5
LotsMultiplier=1.5
LotsMultiplier=1.5
LotsMultiplier=1.5
LotsMultiplier=1.5
LotsMultiplier=2
LotsMultiplier=2
LotsMultiplier=2
LotsMultiplier=2
LotsMultiplier=2
LotsMultiplier=1.5
LotsMultiplier=1.5
LotsMultiplier=1.5
LotsMultiplier=1.5
....
Immerhin hir wurde sogar etwas bewegt, mit
oSortRange.Sort(aSortDesc())
passierte gar nichts?
Ist das ein bekannter Bug?
gooly
--
Informationen zum Abmelden: E-Mail an users+h...@de.libreoffice.org
Tips zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert