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

Excel PivotFilter VBA

Forumthread: Excel PivotFilter VBA

Excel PivotFilter VBA
08.12.2017 09:46:45
Nicole
Hallo zusammen,
über einen Button möchte ich das der Filter von einer Pivot Tabelle auf "alle" gesetzt wird und alle "leeren Felder" ausgeblendet werden = im Filter nicht angehakt - funktioniert einwandfrei.
ActiveSheet.PivotTables("PivotTable1").PivotFields("Datum").ClearAllFilters
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Datum")
.PivotItems("(Blank)").Visible = False
End With
Nun das Problem: Ich möchte über einen zweiten Button den Filter von einer Pivot Tabelle leeren, d.h. das keine Position mehr angeharkt ist und anschließend nur "blank"= die leeren Felder anharken. Im Netz bin ich immer wieder auf folgende Lösung gestoßen, aber diese funktioniert nicht:
Dim pi As PivotItem
ActiveSheet.PivotTables("PivotTable1").PivotFields("Datum").ClearAllFilters
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Datum")
For Each pi In .PivotItems
If pi.Name "(blank)" Then
pi.Visible = False
End If
Next
End With
Laufzeitfehler ´1004' Die Visible-Eigenschaft des PivotItem-Objekts kann nicht festgelegt werden. Ich wäre euch sehr dankbar wenn Ihr den Knoten in meinem Hirn lösen könntet!
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel PivotFilter VBA
08.12.2017 11:36:43
fcs
Hallo Nicole,
wahrscheinlih enthält dein Pivotbericht Karteileichen (Pivot-Items, die in der Quelle nicht mehr vorhanden sind). Diese verurscahen gelegentlich unter VBA Probleme.
Mit der folgenden Makro-Variante solltest du die Leereinträge herausfiltern können.
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Datum").ClearAllFilters
ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"Datum").PivotFilters.Add Type:=xlCaptionEquals, Value1:=""
Gruß
Franz
Anzeige
AW: Excel PivotFilter VBA
08.12.2017 12:42:51
Nicole
Hallo Franz,
leider hat es nicht funktioniert.
Jetzt erhalte ich den Laufzeitfehler '1004'
Anwendungs-oder objektdefinierter Fehler.
Habe meine kleine Beispieldatei hochgeladen - vielleicht kannst du den Code direkt einbauen und mir zurückschicken? Das wäre ein Traum :)
https://www.herber.de/bbs/user/118195.xlsm
Anzeige
AW: Excel PivotFilter VBA
09.12.2017 06:23:30
fcs
Hallo Nicole,
mein Vorschlag funktioniert bei Pivot-Feldern als Zeilen- oder Spaltenbeschriftung.
Bei Pivot-Feldern im Berichtsfeld muss man eine andere Lösung wählen und für leere Werte das Berichtsfeld auf "(blank)" setzen.
https://www.herber.de/bbs/user/118202.xlsm
Gruß
Franz
Sub filter_leer()
' filter Makro
On Error Resume Next
With ActiveSheet.PivotTables("PivotTable1")
.RefreshTable
With .PivotFields("Datum")
.ClearAllFilters
.PivotItems("(Blank)").Visible = False
End With
End With
End Sub
Sub filter_nur_leer()
' filter_nur_leer Makro
On Error Resume Next
With ActiveSheet.PivotTables("PivotTable1")
.RefreshTable
With .PivotFields("Datum")
.ClearAllFilters
.CurrentPage = "(blank)"
End With
End With
End Sub

Anzeige
AW: Excel PivotFilter VBA
11.12.2017 09:10:15
Nicole
1000 DANK! Darauf wäre ich nicht gekommen - ist aber auch zu einfach ;)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige