Seite 1 von 1

Daten filtern und kopieren

Verfasst: Di, 09.06.2020 13:32
von Nopsi
Hallo zusammen
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

Re: Daten filtern und kopieren

Verfasst: Di, 09.06.2020 18:03
von F3K Total
Moin,
funzt bei mir, wenn ich den Filterbereich statt mit

Code: Alles auswählen

oBereichAlleDaten = oDatenSheet.getCellRangeByName( "A:V" )
eher etwas kleiner

Code: Alles auswählen

oBereichAlleDaten = oDatenSheet.getCellRangeByName( "A1:V10000" )
ansetze.
Gruß R

Re: Daten filtern und kopieren

Verfasst: Do, 11.06.2020 13:07
von Nopsi
Danke für die Hilfe :)