Seite 1 von 1
Filterkriterien per Makro setzen II
Verfasst: Mi, 16.09.2020 12:04
von Lupo121205
Hi, mit dem folgenden code aktiviere ich einen vorher festgelegten Spezialfilter
Code: Alles auswählen
dispatcher.executeDispatch(document, ".uno:DataFilterSpecialFilter", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:FilterExecute", "", 0, Array())
Ich muß nur noch [return] oder [ok] drücken und der Filter wird aktiviert.
- filter2.jpg (64.31 KiB) 2520 mal betrachtet
Damit kann ich zwar gut leben, möchte aber zur Abrundung auch diesen letzten manuellen Schritt
automatisch erfolgen lassen.
Weiß jemand, was an meinem Code noch fehlt?
Gruss und herzlichen Dank für den bisherigen Beistand
Lupo
Re: Filterkriterien per Makro setzen II
Verfasst: Mi, 16.09.2020 12:48
von Hiker
Hallo,
ich nutze folgenden Code der aufgerufen wird, wenn sich die Zelle ändert, in der das Filterkriterium steht.
Die Tabelle Filterquelle enthält die zu filternden Daten - wo ich sonst auf Bereich-aktualisieren im Menü gehen würde,
das musst Du dann anpassen.
Die letzten beiden Zeilen springen dann nur an die Stelle, wo ich weiterarbeiten will,
kannst Du löschen oder anpassen.
Code: Alles auswählen
sub Refresh_Filter_Ranges
REM Quelle F3KTotal / LibreOffice-Forum / 30.12.17 / Abrechnung mit Datumskriterium erstellen
REM Angepasst /JB
oController = thisComponent.CurrentController
oStartCell = thisComponent.Sheets.getbyName("Filterquelle").getCellByPosition(1,1)
oController.Select(oStartCell)
document = oController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:DataAreaRefresh", "", 0, Array())
oStartCell = thisComponent.Sheets.getbyName("Auswertung").getCellByPosition(1,1)
oController.Select(oStartCell)
end sub
Mfg, Jörn
PS: Erster Teil der Geschichte ist hier:
https://de.openoffice.info/viewtopic.php?f=18&t=74946
[gelöst] Re: Filterkriterien per Makro setzen II
Verfasst: Do, 24.09.2020 20:26
von Lupo121205
Hallo Jörn,
möchte doch noch ein positives feedback zu Deinem Code machen.
Hat mir keine Ruhe gelassen - und nachdem ich den Code so halbwegs begriffen haben, ist er als letztes I-Tüpfelchen in meine Anwendung eingeflossen und hat sich dort bewährt. Der Unterschied bestand im wesentlichen in der Zeile
Code: Alles auswählen
dispatcher.executeDispatch(document, ".uno:DataAreaRefresh", "", 0, Array())
Re: Filterkriterien per Makro setzen II
Verfasst: Do, 24.09.2020 22:51
von Hiker
Hallo,
schön dass Du es verwenden könntest. Ich hab das damals nur kurz in der Mittagspause rüberkopiert.
Der Unterschied im Ansatz ist, das Du ursprünglich den Filter neu setzen willst, während der von mir genannte Code nur "Bereich aktualisieren" aufruft, was ausreicht um den Filter zu aktualisieren, wenn man den Cursor in den Quellbereich gesetzt hat - dasselbe, was ich ja auch schon als manuelles Verfahren beschrieben hatte.
Mfg, Jörn