Autom. Filter mit Oder-Verknüpfung zwischen verschiedenen Spalten

Nikhil_1

Grünschnabel
Hallo zusammen

Die Anwendung lässt über ein Userformular viele Filtermöglichkeiten auswählen.
Je nach ausgeführter Prozedur wurden die Zeilen in einem Worksheet entsprechend gefiltert.

Alle bisherigen Filter konnten über VBA erledigt werden. Zum Beispiel:
...
...
Selection.AutoFilter Field:=feldnr, Criteria1:="O"
Selection.AutoFilter Field:=feldnr2, Criteria1:="J"


Die neue Anforderung soll aber eine Oder-Verknüpfung über zwei verschiedene Felder (Spalten)
erledigt werden.
"Zeige alle Zeilen im Sheet, welche in der Spalte B ein "X" enthält oder in Spalte C ein "Y" enthält.

Und so geht es leider nicht:
...
...
Selection.AutoFilter Field:=feldnr2, Criteria1:="J", _
Operator:=xlOr, Field:=feldnr3, Criteria2:="X"

Muss man eine eigene Makroprozedur schreiben, welche den automatischen Filter nicht benützt?
Weiss jemand eine Lösung?

Danke im voraus.
Nikhil
 
Ich denke das du mit der AutoFilter Funktion hier nicht zum gewünschten Ziel kommst. Schau dir dafür mal die AdvancedFilter Funktion an.

Gehen tut es damit auf jeden Fall. Du musst die Filterkriterien nur anders angeben. Ist ein bisschen schwierig zu beschreiben, hänge deshalb mal ein Bild an wo ein Filter erstellt wird der entweder in Spalte "A" nach dem Namen "Müller" oder in Spalte "B" nach dem Wert "1" filtert.
 

Anhänge

  • Excel Filter.jpg
    Excel Filter.jpg
    158,8 KB · Aufrufe: 568
Hallo Tombe,

danke für den Tipp. Ich probiere ihn morgen gleich aus und melde mich dann wieder.
Habe zwischenzeitlich eine Prozedur geschrieben, welche die Zeilen einzeln durchläuft.
Damit gibt es aber andere Probleme. Daher ist mir Dein Tip sehr willkommen.

Gruß
Nikhil
 
Hallo Tombe,

ich konnte Deinen Vorschlag in der aktuellen Anforderung doch nicht umsetzen,
da das Befüllen der Zeilen über ein externes Programm gemacht wird und ich in den Zeilen und Spalten nichts ändern will.

Daher läuft jetzt der Code durch die Zeilen (for each zelle in Range(bereich) ...zelle.Offset(0, x)) und prüft die Und- und Oder-Bedingungen
selbst. Ist zwar vergleichsweise langsam (1-3 Sekunden) aber damit kann der User leben.

Ich werde mir aber Deine Lösung für die Zukunft merken.

Gruß
Nikhil
 
Schade das es so nicht geht. Ist es auch nicht möglich den Vorgang wie oben auf dem Bild in einem Makro nachzubauen. Dann könntest du die gemachten Angaben auch dann übernehmen wenn sie "von außen" kommen!!
 
Zurück