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:

Code: Alles auswählen

oDesFiltro.UseRegularExpressions = True
und

Code: Alles auswählen

mCamposFiltro(1).StringValue = "joão|juca|carlos"