Hallo Community,
ich habe ein Makro, das genau das macht (Filter setzen → PDF exportieren → Filter wieder löschen) und das auch tadellos funktioniert.
Dasselbe bräuchte ich auf einem anderen (identischen) Tabellenblatt in der selben Datei. Leider funktioniert dort das Löschen des Filters am Ende des Makros nicht, bis dahin aber alles. Habe den selben Code verwendet (nur den Namen des Tabellenblattes im Code geändert).
Vielleicht hat einer der Kundigen eine Idee dazu? Danke für eure Zeit! Ich bin leider Programmieranfänger und finde den Fehler nicht.
Hier das Makro:
sub rechnung_export_pdf
'Filter setzen
Dok = ThisComponent
Controller = Dok.CurrentController
Blatt = Controller.ActiveSheet
Cursor =Blatt.createCursor()
Cursor.GotoEndofUsedArea(True)
EndZeile = Cursor.getRangeAddress.EndRow
For I = 0 To 40
Zelle = Blatt.getCellByPosition(0,I)
Wert = Zelle.String
If Wert = "x" then
Zeile = Blatt.rows(I)
Zeile.IsVisible = False
End If
next
'Export PDF
dim args2(1) as new com.sun.star.beans.PropertyValue
dim Arg(0) as new com.sun.star.beans.PropertyValue
Doc = ThisComponent
Controller = Doc.CurrentController
Sheet = Doc.Sheets.getByName("Print")
CellRange = Sheet.getCellRangeByName("$B$1:$F$37")
Controller.select(CellRange)
Cell = Sheet.getCellByPosition(6,0)
Arg(0).Name = "Selection"
Arg(0).Value = CellRange
args2(0).Name = "FilterName"
args2(0).Value = "calc_pdf_Export"
args2(1).Name = "FilterData"
args2(1).Value = Arg()
Doc.storeToURL("file:///Users/wolfH/Desktop/"& Cell.getString()&".pdf",args2())
'Filter loeschen
odatabaserange = thiscomponent.databaseranges(0)
oFilterDescriptor = odatabaserange.FilterDescriptor
oFilterDescriptor.setFilterFields(array())
odatabaserange.referredcells.Rows.Isvisible = True
odatabaserange.refresh
end sub