Ich versuche gerade mein Makro zum laufen zu bringen. In Excel habe ich schon ein funktionierendes Makro dafür aber für Libre office brauche ich noch eins. Wenn ich das Makro starte läuft die eingabe des Filterbegriff einwandfrei, aber danach passiert einfach gar nix. sieht jemand meinen Fehler?
Code: Alles auswählen
Option Explicit
sub tst()
Dim d1Doc 'die geladene Komponente
Dim d2Doc 'die geladene Komponente
Dim d3Doc 'die geladene Komponente
Dim Arg() 'ein leeres Array der Argumenteliste
Dim sText As String
Dim oDatenSheet
Dim oBereichAlleDaten
Dim oFilterBeschreib
Dim oFilterFeld
Dim oZielZelle
Dim sURL as String, Sframe As String, lSearch As Long
d1Doc=StarDesktop.loadComponentFromURL (ConvertToURL("V:\user\folder\mappe1.ods"), "_default", 63, Arg())
d2Doc=StarDesktop.loadComponentFromURL (ConvertToURL("V:\user\folder\mappe2.ods"), "_default", 63, Arg())
d3Doc=StarDesktop.loadComponentFromURL (ConvertToURL("V:\user\folder\mappe3.ods"), "_default", 63, Arg())
sText = InputBox("Textsuche:", "Suche", "")
oDatenSheet = d3Doc.Sheets().getByName( "BERECHNUNG" )
' Bereich
oBereichAlleDaten = oDatenSheet.getCellRangeByName( "A:V" )
'(2) FILTER erstellen
oFilterBeschreib = oBereichAlleDaten.createFilterDescriptor ( TRUE )
'
oFilterFeld = createUnoStruct( "com.sun.star.sheet.TableFilterField" )
With oFilterFeld
.Field = 3 ' Spalte D
.Operator = com.sun.star.sheet.FilterOperator.EQUAL
.StringValue = sText
End With
' Feld auf Filter anwenden
oFilterBeschreib.setFilterFields( Array( oFilterFeld ) )
' (4) Ausgabebereich des Filters festlegen
oFilterBeschreib.CopyOutputData = TRUE
'----><> Startzelle des Ausgabebereichs
oZielZelle = d1Doc.Sheets().getByName( "BERECHNUNG" ).getCellByPosition( 4 , 6 ) ' Spalte/Zeile
' Zieladresse zuweisen
oFilterBeschreib.OutputPosition = oZielZelle.CellAddress
' Filter auf Datenbereich anwenden
oBereichAlleDaten.filter( oFilterBeschreib )
end sub