Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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!

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
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 ;)

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige