Autofilter über mehrere Tabellenblätter synchronisieren
Schritt-für-Schritt-Anleitung
Um den Autofilter in Excel über mehrere Tabellenblätter hinweg zu synchronisieren, kannst du folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass bei einem Doppelklick auf Zelle A1 alle Autofilter auf den Blättern, die mit "Werk_" beginnen, entsprechend der Auswahl in dem aktuell aktiven Blatt gesetzt werden.
- Öffne die Excel-Datei, in der du den Autofilter über mehrere Tabellenblätter anwenden möchtest.
- Drücke
ALT
+ F11
, um den VBA-Editor zu öffnen.
- Wähle im Projektfenster das Tabellenblatt "Tabelle1" aus.
- Kopiere den folgenden Code in das Codefenster:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim iX As Integer, iXF As Integer
Dim arrFilter()
If Target.Address <> "$A$1" Then Exit Sub
Cancel = True
If ActiveSheet.AutoFilterMode = False Then Exit Sub
Application.EnableEvents = False
With ActiveSheet.AutoFilter
With .Filters
ReDim arrFilter(1 To .Count, 1 To 3)
For iXF = 1 To .Count
With .Item(iXF)
If .On Then
arrFilter(iXF, 1) = .Criteria1
If .Operator Then
arrFilter(iXF, 2) = .Operator
arrFilter(iXF, 3) = .Criteria2
End If
End If
End With
Next
End With
End With
For iX = 1 To ActiveWorkbook.Worksheets.Count
If Left(ActiveWorkbook.Worksheets(iX).Name, 5) = "Werk_" And _
ActiveWorkbook.Worksheets(iX).Name <> ActiveSheet.Name Then
With ActiveWorkbook.Worksheets(iX)
On Error Resume Next
.ShowAllData
On Error GoTo 0
For iXF = 1 To UBound(arrFilter(), 1)
If Not IsEmpty(arrFilter(iXF, 1)) Then
If arrFilter(iXF, 2) Then
.Cells.AutoFilter field:=iXF, Criteria1:=arrFilter(iXF, 1), _
Operator:=arrFilter(iXF, 2), Criteria2:=arrFilter(iXF, 3)
Else
.Cells.AutoFilter field:=iXF, Criteria1:=arrFilter(iXF, 1)
End If
End If
Next iXF
End With
End If
Next iX
MsgBox "Autofilter auf allen Blättern" & vbCrLf & _
"gemäss Blatt " & ActiveSheet.Name & " gesetzt!", _
vbOKOnly + vbInformation, "Auto-Autofilter"
Application.EnableEvents = True
End Sub
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Klicke doppelt auf die Zelle A1 im aktiven Tabellenblatt, um den Autofilter zu setzen.
Häufige Fehler und Lösungen
-
Fehler: Autofilter funktioniert nicht auf allen Blättern
Lösung: Stelle sicher, dass die Blätter, auf denen der Autofilter gesetzt werden soll, mit "Werk_" beginnen. Der Code schließt andere Blätter aus.
-
Fehler: Doppelklick funktioniert nicht
Lösung: Überprüfe, ob der Code im richtigen Tabellenblatt eingefügt wurde und ob die Zelle A1 tatsächlich angeklickt wird.
-
Fehler: Makro wird nicht ausgeführt
Lösung: Überprüfe, ob Makros in deiner Excel-Instanz aktiviert sind. Gehe zu „Datei“ > „Optionen“ > „Trust Center“ und aktiviere die Makros.
Alternative Methoden
-
Excel 2 Filter gleichzeitig anwenden: Du kannst auch den „Erweiterten Filter“ verwenden, um Daten aus mehreren Tabellenblättern zu extrahieren, jedoch erfordert dies manuelle Einstellungen.
-
Power Query: Eine leistungsstarke Methode, um Daten aus mehreren Tabellenblättern zu kombinieren und zu filtern. Du kannst Daten aus verschiedenen Blättern importieren und dann die Filterfunktionen in Power Query nutzen.
Praktische Beispiele
Angenommen, du hast folgende Blätter:
- Werk_0200
- Werk_1600
- Werk_1800
Wenn du im „Werk0200“ Blatt einen Filter auf die Spalte A gesetzt hast, kannst du durch Doppelklick auf A1 diesen Filter automatisch auf die anderen „Werk“-Blätter anwenden.
Tipps für Profis
-
Verwende das Makro für mehrere Filter: Du kannst den Code erweitern, um mehrere Filter auf einem Tabellenblatt gleichzeitig anzuwenden, indem du zusätzliche Bedingungen im Code einfügst.
-
Optimierung der Performance: Bei großen Datenmengen kann die Verwendung von Arrays und das Minimieren der Bildschirmaktualisierungen die Performance verbessern.
FAQ: Häufige Fragen
1. Funktioniert der Code in Excel 365?
Ja, der Code sollte auch in Excel 365 funktionieren, solange Makros aktiviert sind.
2. Kann ich den Autofilter auf mehrere Tabellen gleichzeitig filtern?
Ja, der bereitgestellte Code ermöglicht es, den Autofilter auf mehrere Tabellenblätter anzuwenden, solange diese entsprechend benannt sind.
3. Wie kann ich den Code anpassen, um weitere Blätter auszuschließen?
Du kannst die Zeilen, die die Bedingung für das Filtern überprüfen, anpassen, um weitere Blätter auszuschließen, indem du zusätzliche Namen hinzufügst.
4. Muss ich den Code in jedes Blatt einfügen?
Nein, der Code sollte nur im ersten Blatt eingefügt werden, von dem du die Filterung starten möchtest.