CalcWeiss hat geschrieben:ich habe folgendes Makro dazu geschrieben
Naja... Du hast es aufgezeichnet und verändert
CalcWeiss hat geschrieben:Mir fehlt ein Indiz, ob die Autofilter bereits aktiv sind oder nicht
Beim Filter selbst gibt es keine Eigenschaft, die abgefragt werden könnte - der Autofilter ist immer vorhanden, auch wenn er noch nie eingesetzt wurde bzw. nicht angezeigt wird.
Work-Around (wenn es sich nur um das eine Blatt handelt):
setze eine globale Variable, die -falls gesetzt- Deine Routine direkt verlässt.
Setze die globale Variable zurück, wenn der Autofilter rausgenommen wird.
Dieses machst Du dann über ein anderes Makro, nicht über das Menü.
Code: Alles auswählen
GLOBAL myFilterGesetzt AS BOOLEAN
SUB resetFilter
' Vorlage DFrench http://www.oooforum.org/forum/viewtopic.phtml?t=5096
'
' Name des aktuellen Blatts
oCurrentController = ThisComponent.getCurrentController()
oAktivesBlatt = oCurrentController.getActiveSheet()
sBlattName = oAktivesBlatt.getName()
' anpassen!
oBereich = oAktivesBlatt.getCellRangeByPosition( 0, 0, 6, 60000 )
' the filter rules are set up in this
oFilterDesc = oBereich.createFilterDescriptor( TRUE )
' set the filter description up
oFilterDesc.setFilterFields( Array() ) 'set the filter rules by assigning the array of fields
oBereich.filter( oFilterDesc ) 'do the filter operation
myFilterGESETZT = FALSE
Hilft das weiter?