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

Forumthread: Filter einer Pivot "leeren"

Filter einer Pivot "leeren"
06.07.2017 11:24:15
Tanja
Hallo zusammen,
ich habe eine Pivottabelle in der ich in der ersten Spalte einen Filter habe.
Nun möchte ich, dass der Filter nur einen bestimmten Wert ausgibt und abgesehen davon nichts anzeigt. Also quasi nur eine Checkbox ein häckchen drin hat.
Wenn ich das mit dem Makro aufzeichner versuche, dann bekomm ich eine elendslange Liste die ich nachher nicht ausführen kann, da sie zulang ist.
Gibt es einen VBA-Code der es mir ermöglicht, dass nur ein Element auf "True" setzt und die anderen alle auf "false"?
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filter einer Pivot "leeren"
06.07.2017 12:29:37
Michael
Hallo!
Schematisches Bsp.:
Sub a()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.Worksheets("Tabelle2")
Dim p As PivotTable: Set p = Ws.PivotTables("PivotTable1")
Dim f As PivotField: Set f = p.PivotFields("Lorem")
Dim i As PivotItem, s$
s = "C"
With f
For Each i In .PivotItems
If i.Name  s Then
i.Visible = False
Else:
i.Visible = True
End If
Next
End With
End Sub
Angenommener Fall: Die Pivot-Tabelle enthält in den Zeilen-Beschriftungen die Checkboxen "A" bis "D" - dann würde durch den o.a. Code nur die Checkbox für "C" ausgewählt.
Passt?
LG
Michael
Anzeige
AW: Filter einer Pivot "leeren"
06.07.2017 12:32:32
Rudi
Hallo,
bspw. nur das letzte an:
Sub aaaa()
With Sheets(1).PivotTables(1)
.RefreshTable
With .PivotFields(1)
.ClearAllFilters
For i = 1 To .PivotItems.Count - 2
.PivotItems(i).Visible = False
Next
.PivotItems(i).Visible = True
End With
End With
End Sub

Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Filter einer Pivot "leeren"


Schritt-für-Schritt-Anleitung

Um den Filter einer Pivot-Tabelle in Excel zu leeren und nur einen bestimmten Wert anzuzeigen, kannst Du den folgenden VBA-Code verwenden. Dieser Code setzt die Sichtbarkeit aller anderen PivotItems auf "False", während das gewünschte Element auf "True" bleibt.

  1. Öffne Excel und Deine Arbeitsmappe.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Rechtsklicke im Projekt-Explorer auf "VBAProject (DeineDatei.xlsx)".
    • Wähle Einfügen > Modul.
  4. Kopiere und füge den folgenden VBA-Code in das Modul ein:

    Sub FilterPivot()
       Dim Wb As Workbook: Set Wb = ThisWorkbook
       Dim Ws As Worksheet: Set Ws = Wb.Worksheets("Tabelle2")
       Dim p As PivotTable: Set p = Ws.PivotTables("PivotTable1")
       Dim f As PivotField: Set f = p.PivotFields("Lorem")
       Dim i As PivotItem
       Dim s As String
       s = "C" ' Hier den gewünschten Wert angeben
       With f
           For Each i In .PivotItems
               i.Visible = (i.Name = s)
           Next i
       End With
    End Sub
  5. Ändere den Wert von s in den gewünschten Filterwert.

  6. Schließe den VBA-Editor und führe das Makro über ALT + F8 aus.


Häufige Fehler und Lösungen

  • Fehler: "Runtime error 1004: Unable to set the Visible property of the PivotItem class"

    • Lösung: Stelle sicher, dass der Filterwert, den Du setzen möchtest, tatsächlich in der Pivot-Tabelle vorhanden ist.
  • Fehler: Alle Filterwerte bleiben sichtbar.

    • Lösung: Überprüfe den Code und stelle sicher, dass der Wert von s korrekt gesetzt ist.

Alternative Methoden

Eine alternative Methode zum Leeren eines Pivot-Filters ist die Verwendung des ClearAllFilters-Befehls, um alle Filter gleichzeitig zu entfernen. Hier ist ein Beispiel:

Sub ClearAllPivotFilters()
    With Sheets(1).PivotTables(1)
        .PivotFields(1).ClearAllFilters
    End With
End Sub

Diese Methode ist hilfreich, wenn Du alle Filter zurücksetzen möchtest, bevor Du neue Filter anwendest.


Praktische Beispiele

Angenommen, Du hast eine Pivot-Tabelle, die die Verkaufszahlen verschiedener Produkte anzeigt. Wenn Du nur die Verkaufszahlen für ein bestimmtes Produkt, z.B. "Produkt A", anzeigen möchtest, kannst Du den ersten VBA-Code verwenden und den Wert von s auf "Produkt A" setzen.

Das Ergebnis wird sein, dass nur die Daten für "Produkt A" angezeigt werden, während alle anderen Produkte ausgeblendet werden.


Tipps für Profis

  • VBA-Filter für Pivot-Tabellen: Nutze die Flexibilität von VBA, um komplexe Filter zu erstellen, die auf verschiedenen Bedingungen basieren.
  • Optimierung: Wenn Du regelmäßig mit Pivot-Tabellen arbeitest, speichere Deine VBA-Skripte in einer separaten Datei oder als Vorlage, um die Wiederverwendbarkeit zu erhöhen.
  • Fehlerbehandlung: Implementiere Fehlerbehandlung in Deinen VBA-Codes, um unerwartete Probleme zu erkennen und zu beheben.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Filter in einer Pivot-Tabelle gleichzeitig leeren?
Du kannst den ClearAllFilters-Befehl verwenden, um alle Filter gleichzeitig zurückzusetzen.

2. Ist dieser VBA-Code in allen Excel-Versionen kompatibel?
Ja, der verwendete VBA-Code ist mit den meisten modernen Excel-Versionen kompatibel, die VBA unterstützen. Achte jedoch darauf, dass die Pivot-Tabelle korrekt benannt ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige