Filterkriterien per Makro setzen II

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: Filterkriterien per Makro setzen II

Re: Filterkriterien per Makro setzen II

von Hiker » Do, 24.09.2020 22:51

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

[gelöst] Re: Filterkriterien per Makro setzen II

von Lupo121205 » Do, 24.09.2020 20:26

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

von Hiker » Mi, 16.09.2020 12:48

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

Filterkriterien per Makro setzen II

von Lupo121205 » Mi, 16.09.2020 12:04

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
filter2.jpg (64.31 KiB) 2498 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

Nach oben