Excel 2013 - Suchfilter für Tabellen in separater Zelle eingeben

poolzero

Lt. Commander
Registriert
Juli 2004
Beiträge
1.209
Hi,

Ich hoffe mir kann jemand helfen. Ich muss gerade in meinem neuen Betrieb einiges umstellen und versuche einiges mit Excel 2013 zu optimieren. Leider komme ich an einem Punkt (kurz vor Ende - wie das immer so ist) nicht weiter.

Wenn ich eine Tabelle erstelle kann ich bekanntlich über die Filterfunktion Namen/Daten filtern. Leider muss ich, durch eine Dropdown-Auswahl auf einem anderen Blatt, von dort aus irgendwie den Filter aktivieren.

Ich möchte also den Suchbegriff nicht über den Tabellenfilter finden, sondern in einer separaten Zelle angeben.
Wie kann ich das am Besten machen? Ist das überhaupt möglich ohne VBA Kenntnisse?

Ich habe zwei Bilder angefügt mit fiktivem Inhalt. In der Zelle A1 (gelb) möchte ich den Begriff (hier: Stadt) eingeben, der gefiltert werden soll.

Das nächste Problem ist, dass die gefilterten Daten auf ein anderes Blatt überführt werden müssen (Dort werden weitere Berechnungen durchgeführt).

Vielen Dank im voraus
 

Anhänge

  • bild-1-.jpg
    bild-1-.jpg
    26 KB · Aufrufe: 1.017
  • bild-2-.jpg
    bild-2-.jpg
    29 KB · Aufrufe: 1.259
poolzero schrieb:
Wenn ich eine Tabelle erstelle kann ich bekanntlich über die Filterfunktion Namen/Daten filtern. Leider muss ich, durch eine Dropdown-Auswahl auf einem anderen Blatt, von dort aus irgendwie den Filter aktivieren.

Ich möchte also den Suchbegriff nicht über den Tabellenfilter finden, sondern in einer separaten Zelle angeben.
Wie kann ich das am Besten machen? Ist das überhaupt möglich ohne VBA Kenntnisse?
Kurz gesagt: das geht nicht ohne VBA.

Das Problem mit dem Filter in Excel ist, dass dieser nur manuell oder mit einem Makro aktiviert beziehungsweise aktualisiert werden kann. Man kann sich zwar eine schöne Hilfsspalte zum Filtern via einem Zellinhalt basteln - zum Beispiel =WENN(Tabelle2!$A$1=A3;WAHR;FALSCH) sodass nur Zellen sichtbar sind, die den Inhalt WAHR enthalten, weil der Ort in A1 auf dem Blatt Tabelle2 mit A3, A4, A5, etc übereinstimmt - aber leider bringt das nichts, weil man den Filter danach immer manuell "anschubsen" muss. Dazu reicht zwar schon ein Klick auf das Filter-Symbol und die Bestätigung mittels dem OK-Button - von einem fremdem Tabellenblatt sind das aber mindestens 3 unbequeme Mausklicks zu viel.

Lange Rede, kurzer Sinn: es geht leider nur mit Hilfe von VBA. Allerdings ist das Erstellen eines Filters nach einem bestimmten Kriterium nicht sehr kompliziert und sollte sich sogar mit einem aufgezeichneten Makro lösen lassen. Probier das doch mal, indem du eine (gern auch versteckte) Hilfsspalte mit einer WAHR/FALSCH Kondition erstellst und dann ein Makro aufzeichnest, welches den Autofilter aktiviert. Abschließend kannst du auch noch einen Button als Formularsteuerelement einzufügen, sodass man das Makro mit einem einzigen Mausklick ausführen kann. Makros lassen sich auch in das Menü-Band der Anwendung hinzufügen und von dort mit 1 bis 2 Mausklicks ausführen. Sinnvoll ist das aber nur bei solchem VBA-Code, der in allen Arbeitsmappen zur Verfügung steht.

Alternativ kann man auch einzelne Zellen auf Änderung überwachen und dann einen bestimmten Code ausführen, wie zum Beispiel das Aktivieren eines bestimmten Autofilters. Um das zu erreichen, sollte man zumindest grundsätzlich mit VBA vertraut sein, weil man dafür mehr als ein aufgezeichnetes Makro benötigt und die ein oder andere Zeile schreiben oder modifizieren muss. Das Stichwort hierfür ist das Worksheet_Change Event.

poolzero schrieb:
Das nächste Problem ist, dass die gefilterten Daten auf ein anderes Blatt überführt werden müssen (Dort werden weitere Berechnungen durchgeführt).
Dieselbe Antwort mit dem Makro Aufzeichnen gilt eigentlich auch dafür, allerdings muss das Kopierziel immer das selbe sein. Wenn Excel mit dem Autofilter nicht gewünschte Zeilen ausblendet, dann werden diese beim Markieren und Kopieren nicht beachtet und deshalb lässt sich dieser Schritt gut automatisieren. Dazu startest du die Makro-Aufzeichnung im ungefilterten Zustand und wählst den gewünschten Bereich von der ersten bis zur letzten mit Daten gefüllten Zeile, kopierst diesen Bereich und fügst ihn anschließend an der gewünschten Stelle ein. Sobald in diesem Bereich ein Filter anliegt werden vom Makro nur noch die gefilterten Zeilen kopiert, während Excel den Rest ignoriert.

Zum Abschluss noch eine Anmerkung zu den Makros. Aufgezeichnete Abläufe haben in Excel eine potenziell beschränkte Nutzbarkeit, weil in der Aufzeichnung aller Anwendungsschritte statische Zell-Adressen verwendet werden. Wenn eine mit Daten gefüllte Tabelle heute von A2 bis D20 läuft und morgen bis D25 erweitert wird, dann stehen im aufgezeichneten Makro unverändert die Adressen $A$2:$D$20. Eine primitive Lösung wäre es, einen größeren Zellbereich als bisher verwendet zu markieren, Makros werden aber erst dann universell einsetzbar, wenn man diese Bereiche dynamisch festlegen kann. Auch dazu gibt es Beispielcode auf excel-inside.de.
 
Vielen Dank für deine ausführliche Antwort.
Makro /vba geht nicht, da auch Mitarbeiter daran arbeiten müssen, die nichts von der Materie verstehen. Muss es so einfach wie möglich machen.
Bin gestern jedoch auf die Lösung meines Problems gekommen und kann jetzt sogar ohne filternutzung mein Vorhaben durchführen :)

vielen dank nochmals!
 
Zurück
Oben