Einen Filter über mehrer Spalten laufen lassen?
#1
Hallo Zusammen,

mein kleines Projekt hat eine neue Frage aufgeworfen:

Ich habe eine Tabelle mit 6 Spalten mit verschiedenen Inhalten.
Jetzt möchte ich den Autofilter drüber laufen lassen, wenn ich einen in mein "Suchfeld" etwas eingebe.

Ich versuche verzweifelt die Formel in eine If Schleife zu packen, sodass wenn er den Begriff in Spalte 6 nicht findet, dann in 5 geht, usw.
Sollte er den Begriff zum Schluss nicht finden, so soll einfach eine MsgBox aufgehen.

folgend Formel benutze ich für die Filterung nach dem Suchbegriff:


"Dim Suchfeld As Range

Sub Suchen_und_filtern()

Set Suchfeld = Worksheets("Datentabelle").Range("E1")

'Filter zurück setzen
Worksheets("Datentabelle").Range("Tabelle2").AutoFilter


Worksheets("Datentabelle").Range("Tabelle2").AutoFilter 6, Criteria1:=Suchfeld.Value
       

End Sub"


In E1 wird der Suchbegriff eingegeben und der Filter läuft aktuell nur über Spalte 6.

Geht das via VBA oder wäre eine Formel sinnvoller?

Danke vorab für eure Hilfe :)
Top
#2
Hallo,

wenn in sechs Spalten gleiche Inhalte vorkommen können, stimmt meiner Ansicht nach irgend etwas mit deiner Liste nicht. Am besten lädst du mal eine Beispieldatei hoch.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#3
(23.04.2020, 18:38)Klaus-Dieter schrieb: Hallo,

wenn in sechs Spalten gleiche Inhalte vorkommen können, stimmt meiner Ansicht nach irgend etwas mit deiner Liste nicht. Am besten lädst du mal eine Beispieldatei hoch.

Hallo Klaus-Dieter,

die 6 Spalten haben wie im OP beschrieben unterschiedliche Inhalte ;)

Muss meine Frage aber dennoch anpassen.....

Der Suchfilter soll über alle Spalten laufen und dann die Inhalte filtern.

Habe eine Beispiel Datei angehangen.

d.h. Wenn ich nach "Muster" suche, dann sollen alle Zeilen angezeigt werden, welche das Wort Muster enthalten...

Aktuell habe ich Sie so eingestellt, dass nach der letzten Spalte gesucht wird....



Hoffe ich konnte es einigermaßen erklären

greets


Angehängte Dateien
.xlsm   Testdatei für Forum.xlsm (Größe: 19,46 KB / Downloads: 5)
Top
#4
Moin

STRG-F.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#5
Hallo Westmaster,

anstatt die einzelnen Spalten mit einer Schleife durchzugehen, würde ich mit der Methode Find erstmal  ermitteln, in welcher Spalte sich der Suchbegriff befindet.
Und dann nach dieser Spalte filtern.
Ich habe deinen Code mal entsprechend ergänzt.

Das funktioniert allerdings nicht (so einfach), wenn der Suchbegriff in mehreren Spalten gleichzeitig vorkommt (z.B. der Name "Hans")
Ich denke mal, beim Suchbegriff "Hans" möchtest du sowohl den Hans Albers als auch den Torben Hans angezeigt bekommen…
Die Methode Find liefert (erstmal) nur den ersten Treffer.Wenn alle Treffer gefunden werden sollen (in allen Spalten), wird der Code aufwendiger….

Aber die Filtermethode mit dem Autofilter funktioniert sowieso nicht, wenn der Suchbegriff in mehreren Spalten vorkommt und du beide Ergebnisse angezeigt haben willst.
Denn du kannst mit dem Autofilter (egal ob manuelle in Excel oder mit VBA) einen Begriff nicht in zwei oder mehreren Spalten gleichzeitig filtern.

Dafür bräuchte man den Spezialfilter, der kann sowas

Aber das ganze geht auch ohne VBA, mit einer Hilfsspalte und Formeln.
In der Hilfsspalte wird mit der Funktion SUCHEN für jede Zeile geprüft, ob der Suchbegriff in einer (oder mehreren) Spalte(n) vorkommt.
Anschliessend kann dann die Hilfsspalte gefiltert werden.

Oder man listet mit einer INDEX / AGGREGAT-Formel die gefundenen Treffer (basierend auf dem Ergebnis in der Hilfsspalte) in einem separaten Bereich auf.
Dann kann man die Hilfsspalte sogar ausblenden.
(Oder auch ganz ohne Hilfsspalte, indem man die Formel aus der Hilfsspalte direkt in die AGGREGAT-Formel mit reinpackt…)

Siehe angehängte Beispieldatei

Gruß
Fred


Angehängte Dateien
.xlsm   Filter mit und ohne VBA_fs.xlsm (Größe: 25,01 KB / Downloads: 4)
[-] Folgende(r) 1 Nutzer sagt Danke an Fred11 für diesen Beitrag:
  • Westmaster81
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste