Pivot-Tabellen per VBA aktualisieren
02.04.2017 17:42:06
Tim
ich bin ziemlich neu bei VBA und hoffe, jemand hier kann mir weiterhelfen.
Bisher habe ich VBA noch nicht mit Pivot-Tabellen genutzt.
Nun möchte ich gerne per VBA 2 Pivot-Tabellen aktualisieren (Refresh) UND
den Filter für die Kalenderwoche auf die jeweils letzte volle Woche setzen.
Meine Fragen bzw. Probleme damit:
1) Ist hier in VBA die Zeile .ClearAllFilters überhaupt nötig oder kann ich auch direkt den Filter ändern ?
2) Kann ich vor dem Ändern des Filters prüfen, ob diese Kalenderwoche (z.B. die Zahl 13) in meiner Tabelle überhaupt (schon) enthalten ist ? Sonst filtere ich nach etwas, das gar nicht existiert.
3) Schreibe ich den Code dafür so richtig oder kann man hier noch etwas besser / kürzer formulieren ? Ich war z.B. nicht sicher, ob With innerhalb With Sinn macht.
Mein Code:
Dim varLastSunday As Date, varWeekNumber As Integer
varLastSunday = Date - Weekday(Date, vbUseSystemDayOfWeek)
varWeekNumber = CLng(Format(varLastSunday, "ww"))
Application.ScreenUpdating = False
With Worksheets(4)
.Range("StartColumns").EntireColumn.Hidden = False
.PivotTables("PivotTable9").PivotCache.Refresh
.PivotTables("PivotTable9").PivotFields("WEEK_NUMBER").ClearAllFilters
.PivotTables("PivotTable9").PivotFields("WEEK_NUMBER").CurrentPage = varWeekNumber
.PivotTables("PivotTable10").PivotCache.Refresh
.PivotTables("PivotTable10").PivotFields("week").ClearAllFilters
.PivotTables("PivotTable10").PivotFields("week").CurrentPage = varWeekNumber
End With
Application.ScreenUpdating = True
Vielen Dank für jede Hilfe damit. VG,
Tim
Anzeige