Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Kriterien Autofilter von anderem Blatt übernehmen

Kriterien Autofilter von anderem Blatt übernehmen
11.06.2015 15:01:53
anderem
Hallo,
folgendes: Ich habe zwei Arbeitsblätte. Ein Arbeitsblatt dient mehr oder weniger als Datenbasis für das zweite Übersichtsblatt.
Der Nutzer soll nun auf dem Übersichtsblatt einen Filter setzen können, welcher automatisch auf das erste Arbeitsblatt angewendet wird.
Arbeitsblatt1 hat 15 Spalten, die Spalten "Selektion1", "Selektion2", "Selektion3" enthalten die relevanten Filterkriterien.
Auf dem Übersichtsblatt habe ich nun ebenfalls die Spalten Selektion 1 - 3 eingefügt.
Der Nutzer soll nun auf dem Übersichtsblatt seine entsprechende Filterung (Autofilter) durchführen. Die Filterauswahl soll allerdings ebenfalls auf dem ersten Arbeitsblatt angewendet werden.
Wie sage ich also dem Autofilter auf dem 1. Arbeitsblatt, dass es als Filterkriterien die Kriterien des 2. Arbeitsblattes nehmen soll?
Geht das überhaupt? Lässt sich mein Problem möglicherweise auch anders lösen?
Danke!
PS: Anbei eine Beispieldatei, um mein Problem etwas zu veranschaulichen (Tabelle1=Datenbasis, Tabelle2=Übersichtsseite)
https://www.herber.de/bbs/user/98151.xlsx

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Kriterien Autofilter von anderem Blatt übernehmen
11.06.2015 16:37:50
anderem
Grobe Richtung:
Sub Filter_vom_anderen_Blatt_übernehmen()
Dim Krit1 As String, Krit2 As String, Krit3 As String
Sheets("Tabelle2").Select
Krit1 = Sheets("Tabelle2").AutoFilter.Filters(1).Criteria1
Krit2 = Sheets("Tabelle2").AutoFilter.Filters(2).Criteria1
Krit3 = Sheets("Tabelle2").AutoFilter.Filters(3).Criteria1
Sheets("Tabelle1").Select
ActiveSheet.Range("$A$2:$F2").AutoFilter Field:=1, Criteria1:=Krit1
ActiveSheet.Range("$A$2:$F2").AutoFilter Field:=2, Criteria1:=Krit2
ActiveSheet.Range("$A$2:$F2").AutoFilter Field:=3, Criteria1:=Krit3
End Sub

Anzeige
AW: Kriterien Autofilter von anderem Blatt übernehmen
12.06.2015 07:52:10
anderem
Super, Danke!
Allerdings funktioniert der Code nur tadellos, wenn überall ein Filter gesetzt wurde (In Selektion1,2 und 3) es soll aber auch möglich sein, beispielsweise nur in einer Selektion zu filtern. Derzeit erhalte ich den Fehler 1004 "Anwendungs- oder objektorientierter Fehler" in der jeweiligen Zeile, wo kein Kriterium gefiltert wurde.

Anzeige
Kriterien Autofilter von anderem Blatt übernehmen
12.06.2015 09:42:42
anderem
Dann muss man das mit IF abfangen:
Sub Filter_vom_anderen_Blatt_übernehmen()
Dim Krit1 As Variant, Krit2 As Variant, Krit3 As Variant
Sheets("Tabelle2").Select
If Sheets("Tabelle2").AutoFilter.Filters(1).On = 0 Then
Krit1 = Null
Else
Krit1 = Sheets("Tabelle2").AutoFilter.Filters(1).Criteria1
End If
If Sheets("Tabelle2").AutoFilter.Filters(2).On = 0 Then
Krit2 = Null
Else
Krit2 = Sheets("Tabelle2").AutoFilter.Filters(2).Criteria1
End If
If Sheets("Tabelle2").AutoFilter.Filters(3).On = 0 Then
Krit3 = Null
Else
Krit3 = Sheets("Tabelle2").AutoFilter.Filters(3).Criteria1
End If
Sheets("Tabelle1").Select
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
ActiveSheet.Range("$A$2:$F2").AutoFilter Field:=1, Criteria1:=Krit1
ActiveSheet.Range("$A$2:$F2").AutoFilter Field:=2, Criteria1:=Krit2
ActiveSheet.Range("$A$2:$F2").AutoFilter Field:=3, Criteria1:=Krit3
End Sub

Anzeige
AW: Kriterien Autofilter von anderem Blatt übernehmen
12.06.2015 10:12:41
anderem
Vielen Dank! Das Problem ist nun behoben, allerdings folgt direkt das nächste :( tut mir leid!
Wähle ich in einer Spalte mehr als 1 Kriterium aus (z.B. 2 von 3), filtert er auf Tabelle1 dennoch nur nach dem ersten Kriterium und nicht nach den gewünschten 2. Kannst du mir da vielleicht noch einmal behilflich sein?
Danke im Voraus!

Anzeige
Kriterien Autofilter von anderem Blatt übernehmen
12.06.2015 10:37:02
anderem
Gleiches Muster mit Criteria2, Criteria3 usw.
Verwende den Makrorekorder, damit du siehst wie es aussieht und pass dann das Makro entsprechend an.

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Kriterien Autofilter von anderem Blatt übernehmen


Schritt-für-Schritt-Anleitung

Um die Kriterien eines Autofilters von einem Arbeitsblatt auf ein anderes zu übernehmen, kannst du folgende Schritte befolgen:

  1. Öffne das Excel-Dokument mit mindestens zwei Arbeitsblättern. Das erste Blatt (z.B. "Tabelle1") dient als Datenbasis, während das zweite Blatt (z.B. "Tabelle2") die Übersicht mit Filterkriterien enthält.

  2. Füge die Autofilter hinzu: Stelle sicher, dass in beiden Arbeitsblättern die gewünschten Spalten mit den Bezeichnungen "Selektion1", "Selektion2" und "Selektion3" vorhanden sind.

  3. Verwende den folgenden VBA-Code, um die Filterkriterien zu übernehmen:

    Sub Filter_vom_anderen_Blatt_übernehmen()
       Dim Krit1 As Variant, Krit2 As Variant, Krit3 As Variant
       Sheets("Tabelle2").Select
    
       If Sheets("Tabelle2").AutoFilter.Filters(1).On = 0 Then
           Krit1 = Null
       Else
           Krit1 = Sheets("Tabelle2").AutoFilter.Filters(1).Criteria1
       End If
       If Sheets("Tabelle2").AutoFilter.Filters(2).On = 0 Then
           Krit2 = Null
       Else
           Krit2 = Sheets("Tabelle2").AutoFilter.Filters(2).Criteria1
       End If
       If Sheets("Tabelle2").AutoFilter.Filters(3).On = 0 Then
           Krit3 = Null
       Else
           Krit3 = Sheets("Tabelle2").AutoFilter.Filters(3).Criteria1
       End If
    
       Sheets("Tabelle1").Select
       If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
       ActiveSheet.Range("$A$2:$F2").AutoFilter Field:=1, Criteria1:=Krit1
       ActiveSheet.Range("$A$2:$F2").AutoFilter Field:=2, Criteria1:=Krit2
       ActiveSheet.Range("$A$2:$F2").AutoFilter Field:=3, Criteria1:=Krit3
    End Sub
  4. Führe das Makro aus, um die Filterkriterien von "Tabelle2" auf "Tabelle1" anzuwenden.


Häufige Fehler und Lösungen

  • Fehler 1004: Dieser Fehler kann auftreten, wenn kein Filterkriterium gesetzt wurde. Stelle sicher, dass du das IF-Statement im VBA-Code richtig verwendest, um das Problem abzufangen.

  • Nur ein Kriterium wird gefiltert: Wenn du mehrere Kriterien in einer Spalte auswählst, achte darauf, dass du auch Criteria2, Criteria3 usw. in deinem VBA-Code berücksichtigst. Hier ein Beispiel:

    ActiveSheet.Range("$A$2:$F2").AutoFilter Field:=1, Criteria1:=Krit1, Operator:=xlFilterValues

Alternative Methoden

Falls du keine VBA-Skripte verwenden möchtest, kannst du auch manuell die Filteroptionen in Excel nutzen. Hierbei musst du jedoch jedes Mal die Filter manuell setzen, was weniger effizient ist.

Eine weitere Möglichkeit ist die Verwendung von Power Query, um Daten aus verschiedenen Tabellenblättern zu kombinieren und filterbare Übersichten zu erstellen.


Praktische Beispiele

  • Beispiel 1: Wenn du im Übersichtsblatt "Tabelle2" in "Selektion1" den Filter auf "WertA" setzt, wird im Datenblatt "Tabelle1" automatisch nach "WertA" gefiltert, sobald du das Makro ausführst.

  • Beispiel 2: Mit mehreren Kriterien in "Selektion2" kannst du die Autofilter einstellen, um z.B. alle Werte zwischen "WertB" und "WertC" anzuzeigen.


Tipps für Profis

  • Makros optimieren: Halte deine VBA-Codes so kurz und effizient wie möglich. Nutze Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind.

  • Verwende benannte Bereiche: Anstatt feste Zellbezüge zu verwenden, kannst du benannte Bereiche in Excel definieren. Diese machen deinen Code flexibler und leichter wartbar.

  • Regelmäßige Sicherung: Speichere deine Excel-Datei regelmäßig, insbesondere bevor du Makros ausführst, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Kann ich die Filterkriterien auch aus mehreren Arbeitsblättern übernehmen?
Ja, du kannst den VBA-Code anpassen, um Filterkriterien aus mehreren Arbeitsblättern zu übernehmen, indem du die entsprechenden Sheets referenzierst.

2. Funktioniert dieser Ansatz in allen Excel-Versionen?
Der VBA-Ansatz sollte in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren. Achte darauf, dass die Autofilter aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige