Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 18. 3. 2022 14:49:36

Bezda86
Člen
Registrace: 18. 12. 2021
Příspěvků: 7

Zrušení filtru makrem

Zdravím vás,
potřeboval bych poradit, když někdo zapomene zapnutý nějaký filtr, tak ho před spuštěním různých maker, makrem zrušit.

Co jsem četl po internetu, tak se toto řeší i na anglických fórech např: zde, ale všude bez vyřešení problému.

Kódy jako:

Sub RemoveSheetFilter()
  Dim oSheet, list          ' Sheet to filter.
  Dim oFilterDesc     ' Filter descriptor.
  
  oSheet = ThisComponent.getSheets()
  list = oSheet.getByName("Seznam materiálu")
  oFilterDesc = list.createFilterDescriptor(True)
  oFilterDesc.UseRegularExpressions = True
  list.filter(oFilterDesc)
End Sub

nebo

Sub DeleteFiltr
	Dim args(0) as new com.sun.star.beans.PropertyValue
	Dim oDispatcher, oFrame as object
	oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	oFrame   = ThisComponent.CurrentController.Frame

	args(0).Name = "ToPoint"
    args(0).Value = "$B$9"  'any cell of database range
    oDispatcher.executeDispatch(oFrame, ".uno:GoToCell", "", 0, args())
    oDispatcher.executeDispatch(oFrame, ".uno:DataFilterRemoveFilter", "", 0, Array())
End Sub

Pouze odkryjí skryté řádky, ale stále je aktivní šipečka filtru a podle filtru pro vedlejší sloupec, kde je omezená nabídka podle filtru z předchozího sloupce je vidět, že filtr pořád není zrušený.

Má v dnešní době někdo návrhy jak toto vyřešit.
Díky za rady

Offline

Zápatí