Pivot-Filter in Excel per Makro setzen
Schritt-für-Schritt-Anleitung
Um einen Pivot-Filter in Excel mit VBA zu setzen, befolge diese Schritte:
-
Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
-
Einfügen eines neuen Moduls: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)", wähle Einfügen und dann Modul.
-
Code einfügen: Kopiere den folgenden Code in das Modul:
Sub PivotFilterSetzen()
With DasBlatt.PivotTables(1)
With .PivotFields("Zahlungsart")
.ClearAllFilters
For i = 1 To .PivotItems.Count
.PivotItems(i).Visible = InStr("HandyzahlungBarzahlungRückzahlungKartenzahlung", .PivotItems(i)) > 0
Next
End With
End With
End Sub
-
Anpassen der Filter: Ändere "Zahlungsart" und die Filterkriterien in der InStr-Funktion entsprechend deinen Anforderungen.
-
Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.
Häufige Fehler und Lösungen
-
Fehler: „Objekt nicht gefunden“
Lösung: Stelle sicher, dass der Name der Pivot-Tabelle und der Pivot-Felder korrekt sind.
-
Fehler: Kein Filter angewendet
Lösung: Überprüfe, ob die Filterbedingungen korrekt definiert sind und die Werte in der Datenquelle vorhanden sind.
Alternative Methoden
Wenn VBA nicht die geeignete Lösung bietet, kannst du auch die folgenden Methoden verwenden:
- Excel-Filter: Du kannst die Filter direkt in der Pivot-Tabelle manuell setzen.
- Slicer: Slicer bieten eine benutzerfreundliche Möglichkeit, Filter in Pivot-Tabellen zu setzen, ohne VBA zu verwenden.
Praktische Beispiele
Hier sind einige Beispiele für verschiedene Filteranwendungen in Pivot-Tabellen:
-
Filtern nach mehreren Kriterien:
Sub PivotFilterBeispiele()
With DasBlatt.PivotTables(1)
With .PivotFields("Produkt")
.ClearAllFilters
Dim FilterKriterien As String
FilterKriterien = "ProduktA,ProduktB,ProduktC"
For i = 1 To .PivotItems.Count
.PivotItems(i).Visible = InStr(FilterKriterien, .PivotItems(i)) > 0
Next
End With
End With
End Sub
-
Filtern von Datumswerten:
Sub PivotFilterNachDatum()
With DasBlatt.PivotTables(1)
With .PivotFields("Bestelldatum")
.ClearAllFilters
For i = 1 To .PivotItems.Count
.PivotItems(i).Visible = .PivotItems(i) >= DateValue("01-01-2023")
Next
End With
End With
End Sub
Tipps für Profis
-
Verwende Arrays: Wenn du viele Filterkriterien hast, kann es effizienter sein, diese in einem Array zu speichern und dann zu filtern.
Dim FilterArray As Variant
FilterArray = Array("Handyzahlung", "Barzahlung", "Rückzahlung", "Kartenzahlung")
-
Makros optimieren: Reduziere die Bildschirmaktualisierung während der Ausführung deines Makros mit Application.ScreenUpdating = False.
FAQ: Häufige Fragen
1. Wie kann ich einen Filter für mehrere Pivot-Felder setzen?
Du kannst einfach mehrere With .PivotFields("Feldname") Blöcke in deinem Makro verwenden, um verschiedene Felder zu filtern.
2. Was ist der Unterschied zwischen Visible und ClearAllFilters?
Visible legt fest, ob ein Pivot-Element angezeigt wird, während ClearAllFilters alle bestehenden Filter entfernt und die Sichtbarkeit aller Elemente zurücksetzt.
3. Wie kann ich einen Filter rückgängig machen?
Du kannst die Methode .ClearAllFilters verwenden, um alle Filter in der Pivot-Tabelle zu entfernen.
Mit diesen Anleitungen und Tipps bist du gut gerüstet, um Pivot-Filter in Excel per Makro zu setzen.