Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

PivotTable Filter über Makros setzten

PivotTable Filter über Makros setzten
04.03.2016 14:56:05
Moritz
Hallo Zusammen,
ich stehe aktuell vor einer Herrausforderung in einem VBA Projekt. Ich habe eine Excel-Mappe, welche Filter automatisch setzten soll. Es wird die aktuell ausgewählte Person ermittelt und in eine Variable "AM_Old" gespeichert. Die neue Person wird in "AM_New" gespeichert. Mein Code sieht wie folgt aus :
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
On Error Resume Next
With pt.PivotFields("Besitzer")
.PivotItems(AM_New).Visible = True
.PivotItems(AM_Old).Visible = False
End With
.
.
.
Damit immer ein Objekt ausgewählt ist wird zunächst AM_New auf "Visible" gesetzt, danach "AM_Old" auf "False" gesetzt.
Mein Problem : Diese Funktion klappt zunächst reibungslos, jedoch kommt es zu Problemen in vereinzelten Tabellen. In dieses werden die Werte nicht richtig gesetzt, das ab- oder anwählen funktioniert leider nicht robust.
Konnte bereits jemand in diesem Bereich Erfahrung sammeln und hat einen passenden Tipp für mich ?
Vielen Dank und liebe Grüße
Moritz

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PivotTable Filter über Makros setzten
04.03.2016 16:23:38
fcs
Hallo Moritz,
man kann den Filter für einne einzelnen Wert auch anders setzen.
Gruß
Franz
Sub Makro1()
Dim pt As PivotTable, ws As Worksheet
Dim AM_New
On Error GoTo Fehler
AM_New = "Name 07"  'testzeile
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
On Error Resume Next
With pt.PivotFields("Besitzer")
.ClearAllFilters
.PivotFilters.Add Type:=xlCaptionEquals, Value1:=AM_New
End With
Next pt
Next ws
Application.ScreenUpdating = False
Fehler:
With Err
Select Case .Number
Case 0
Case Else
MsgBox "Fehler-Nr.; " & .Number & vbLf & .Description
Resume Next
End Select
End With
Application.ScreenUpdating = True
End Sub

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige