Seite 1 von 2
[Gelöst] makro: Mehrere Filter gleichzeitig ausführen
Verfasst: Mi 28. Nov 2018, 19:44
von genie
Grüße ,
Ich habe eine Berichtsdatei mit automatischen Filtern in Arbeitsblatt 1; Filter werden von Spalte "A" bis Spalte "AZ" in Zeile 1 eingefügt .
Ich brauche ein Makro, um mehrere Spalten gleichzeitig zu filtern, dh das Makro muss "7" ausführen, wobei sieben Filter in der Reihenfolge von links nach rechts aufeinander folgen .
Bei jedem Filter, der nacheinander von links nach rechts ausgeführt wird, verringert sich die Anzahl der Zeilen, die im Bericht aus Arbeitsblatt 1 angezeigt werden .
Ich habe versucht, den Code anzupassen: Sub FiltrarDatos6 () oder Sub FiltrarDatos8 () des folgenden Link :
https://wiki.openoffice.org/wiki/ES/Man ... trar_datos
Ich habe keine positiven Ergebnisse mit Link-Codes
umarmt Freunde
Re: makro: Mehrere Filter gleichzeitig ausführen
Verfasst: Mi 28. Nov 2018, 21:10
von mikele
Hallo,
suchst du ernsthaft Hilfe? Bitte eine Beispieldatei.
Re: makro: Mehrere Filter gleichzeitig ausführen
Verfasst: Do 29. Nov 2018, 04:31
von genie
Grüße mikele ,
Ich möchte mich für die Hilfe bedanken .
folgt der angehängten Datei, im Arbeitsblatt 1 befindet sich ein Modell mit vier "4" -Filtern, die nacheinander in der Reihenfolge von links nach rechts laufen .
Regeln für Filter :
Filter 1: Wert größer oder gleich 7 [> = 7]
Filter 2: Wert kleiner oder gleich 6 [<= 6]
Filter 3: Wert größer als 2 [> 2]
Filter 4: Wert größer als 7 [> 7]
Hinweis :
Ich habe den automatischen Filter manuell angewendet, um als Modell zu dienen
müssen diesen Makrobetrieb automatisieren
Umarmungen
Re: makro: Mehrere Filter gleichzeitig ausführen
Verfasst: Do 29. Nov 2018, 12:18
von mikele
Hallo,
dafür würde auch der Standardfilter reichen.
Als Makro funktioniert das Beispiel Sub FiltrarDatos7() aus deiner Quelle schon ganz gut.
Es müssen nur die 7 Spalten deines Bereiches als Filterfelder angegeben werden.
Code: Alles auswählen
mCamposFiltro(0).Field = 1
mCamposFiltro(0).Operator = com.sun.star.sheet.FilterOperator.GREATER_EQUAL
mCamposFiltro(0).IsNumeric = True
mCamposFiltro(0).NumericValue = 30
'Agregamos la segunda condición a otro campo
mCamposFiltro(1).Field = 2
mCamposFiltro(1).Connection = com.sun.star.sheet.FilterConnection.AND
mCamposFiltro(1).Operator = com.sun.star.sheet.FilterOperator.LESS_EQUAL
mCamposFiltro(1).IsNumeric = True
mCamposFiltro(1).NumericValue = 35
mCamposFiltro(1).Field = 3
...
Re: makro: Mehrere Filter gleichzeitig ausführen
Verfasst: Do 29. Nov 2018, 13:29
von genie
Hallo mikele ,
Ich habe versucht, ein Sub-FilterData7() in der von Ihnen angeforderten Axexo-Datei zu verwenden, aber das Sub-FilterData7() funktionierte nicht richtig .
Umarmungen
Re: makro: Mehrere Filter gleichzeitig ausführen
Verfasst: Do 29. Nov 2018, 13:42
von mikele
Hallo,
was funktioniert nicht?
Re: makro: Mehrere Filter gleichzeitig ausführen
Verfasst: Do 29. Nov 2018, 17:09
von genie
mikele ,
Ich habe die Tests mit der Datei durchgeführt, die Sie angehängt haben, ich habe einen Button in die Datei eingefügt, ich habe den Button gedrückt und dann haben die Filter mit den Zahlen richtig funktioniert .
dann änderte ich die "D" -Spalte mit Zahlen in eine Spalte mit Namen, und dann drückte ich die Taste erneut, um zu filtern, und der korrekte Filter funktionierte nicht .
Beobachtung :
folgt der Anhangsdatei mit der Änderung, Sie können das neue Makro prüfen Sub-FilterData7() .
Umarmungen
Re: makro: Mehrere Filter gleichzeitig ausführen
Verfasst: Do 29. Nov 2018, 17:59
von mikele
Hallo,
du willst 3 Filterbedingungen definieren. Daher
Code: Alles auswählen
Dim mCamposFiltro(2) As New com.sun.star.sheet.TableFilterField
Die Zählung beginnt bei 0.
Das Löschen des Filters geht ebenfalls direkt.
Re: makro: Mehrere Filter gleichzeitig ausführen
Verfasst: Fr 30. Nov 2018, 00:34
von genie
mikele ,
sehr gutes Makro, arbeitet bereits entsprechend der Anfrage im Thema .
Ich möchte die Nachfrage nach einer weiteren Sache nutzen, da der BASIC Code geschrieben wird, wenn im Filter(1) nach mehreren Kriterien gefiltert werden soll : mCamposFiltro(1).StringValue = Array ( "joão" , "juca", "carlos" )
Wie lautet der Code, um das Field(1) mit dem Array zu filtern ?
Ich habe es versucht, es gelang mir nicht .
Umarmungen
Re: makro: Mehrere Filter gleichzeitig ausführen
Verfasst: Sa 1. Dez 2018, 13:42
von mikele
Hallo,
am einfachsten nutzt du wie in Sub FiltrarDatos9() einen regulären Ausdruck.
Also folgende Zeilen ergänzen:
und