Prüfen, ob in einer Terminmatrix nach einer Spalte gefiltert wurde
Schritt-für-Schritt-Anleitung
-
Öffne deine Excel-Datei, in der sich die intelligente Tabelle mit der Bezeichnung "ASI Termin Matrix" befindet.
-
Aktiviere den Visual Basic for Applications (VBA) Editor:
- Drücke
ALT + F11, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu:
- Klicke auf
Einfügen > Modul.
-
Füge den folgenden VBA-Code ein:
Sub checkFilter()
Dim F As Filter
Dim msg As String
Dim i As Integer
With ThisWorkbook.Worksheets("Termine ASI").ListObjects("ASI_Termin_Matrix")
.ShowAutoFilter = True
For Each F In .AutoFilter.Filters
i = i + 1
If F.On Then msg = msg & vbCr & "Feld " & i & """" & .HeaderRowRange.Cells(i) & """: " & F.Criteria1
Next
End With
If msg <> "" Then MsgBox "Gefiltert auf: " & vbCr & msg
End Sub
-
Führe das Makro aus:
- Schließe den VBA-Editor und gehe zurück zur Excel-Datei.
- Drücke
ALT + F8, wähle checkFilter und klicke auf Ausführen.
Dieser Code prüft, ob in der intelligenten Tabelle gefiltert wurde und zeigt die aktiven Filterkriterien an.
Häufige Fehler und Lösungen
Alternative Methoden
Falls du nicht mit VBA arbeiten möchtest, kannst du auch die Excel-Funktion FILTER verwenden, die in Excel 365 und Excel 2021 verfügbar ist. Diese Funktion ermöglicht es dir, Daten basierend auf bestimmten Kriterien zu filtern, ohne VBA zu verwenden.
Beispiel:
=FILTER(A2:C10, C2:C10="Kriterium")
Praktische Beispiele
- Beispiel für eine Terminmatrix:
Angenommen, du hast eine Tabelle mit Terminen, die nach Status gefiltert werden soll. Verwende das oben genannte Makro, um festzustellen, ob nach dem Status gefiltert wurde und um die entsprechenden Filterkriterien anzuzeigen.
Tipps für Profis
-
Verwende Option Explicit:
Füge am Anfang deiner Module Option Explicit ein, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
-
Code effizienter gestalten:
Anstatt die Filter manuell abzufragen, kannst du auch eine Funktion erstellen, die alle aktiven Filter in einer Array-Variable speichert. So kannst du einfacher darauf zugreifen.
FAQ: Häufige Fragen
1. Kann ich die Filtereinstellungen auch für andere Tabellen verwenden?
Ja, du musst lediglich den Tabellennamen und den Worksheet-Namen im VBA-Code anpassen.
2. Was mache ich, wenn ich keine intelligenten Tabellen verwenden kann?
Du kannst den Code so anpassen, dass er für normale Bereiche funktioniert. Ersetze .ListObjects("ASI_Termin_Matrix") durch den Zellbereich, den du filtern möchtest.
3. Ist dieser Ansatz in allen Excel-Versionen verfügbar?
Der VBA-Code funktioniert in den meisten Excel-Versionen, die Makros unterstützen. Neuere Funktionen wie FILTER sind jedoch nur in Excel 365 und Excel 2021 verfügbar.