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

Pivotfilter per vba auf heutiges Datum setzen

Pivotfilter per vba auf heutiges Datum setzen
02.03.2016 10:48:05
Lolo
Hallo zusammen,
leider ist beim Folgenden Code vom Franz:
'Getestet unter Excel 2016 (Office 365)
'Funktioniert nicht unter Excel 2010

Sub aaTest()
Dim pvTab As PivotTable
Dim pvField As PivotField
Dim pvItem As PivotItem
Application.EnableEvents = False
Application.ScreenUpdating = False
Set pvTab = ActiveSheet.PivotTables("PivotTable1")
Set pvField = pvTab.PageFields("Datum")
pvField.EnableMultiplePageItems = True
pvField.ClearAllFilters
For Each pvItem In pvField.PivotItems
If IsDate(pvItem.Name) Then
If CDate(pvItem.Name) 

ein Problem aufgetreten, dass sich wie folgt äußert:
in meiner Liste sind die Daten vom 10.02.2016 bis zum heutigen Datum 02.03.2016 in dieser Form eingetragen.
Wenn ich das Makro durchlaufen lasse, dann zeigt mir das "pvItem.Name" die Werte als:
"2/15/2016"
"2/16/2016"
..........
"2/29/2016"
"3/01/2016" an.
Das "CDate(pvItem.Name)" sieht aber folgendermaßen aus:
02.10.2016
02.11.2016 - mm.dd.yyyy
02.12.2016
\ /
13.02.2016
14.02.2016
.................. - dd.mm.yyyy
29.02.2016
\ /
03.01.2016 - mm.dd.yyyy
er switcht also zwischendrin... kann man das iwie unterbinden?
Denn je nachdem muss dann das heutige Datum eingestellt werden.
Vielen Dank im Vorraus,
Loreen

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivotfilter per vba auf heutiges Datum setzen
03.03.2016 01:57:38
fcs
Hallo Lolo,
die Verarbeitung von Datumswerten im Seitenbereich von Pivot-Tabs ist via VBA schon extrem tricky.
Ich hab hier auf meinem Lap-Top nur Excel 2010 zur Verfügung, konnte also das Ausblenden der Items kleiner aktuelles Datum nicht testen. Das Ausblenden der "(leer)"-Items funktioniert merkwürdiger Weise.
Ich hab es mit Hilfsvariablen getestet, so dass ich erkennen konnte, was Excel aus dem Datumswert macht und ob das Ausblenden in die richtige Richtung geht.
Die Zeilen mit den Hilfsvariablen kannst du ggf. wieder löschen.
LG
Franz
Sub aaTest()
Dim A, strItemName As String 'Variablen zum Testen
Dim strDatum As String
Dim pvTab As PivotTable
Dim pvField As PivotField
Dim pvItem As PivotItem
Application.EnableEvents = False
Application.ScreenUpdating = False
Set pvTab = ActiveSheet.PivotTables("PivotTable1")
Set pvField = pvTab.PageFields("Datum")
pvTab.RefreshTable
pvField.EnableMultiplePageItems = True
pvField.ClearAllFilters
For Each pvItem In pvField.PivotItems
With pvItem
A = ""
strItemName = .Name
If .RecordCount = 0 Then
'karteileichen ohne Daten überspringen
A = "Karteileiche"
ElseIf LCase(.Name) = "(blank)" Or LCase(.Name) = "(leer)" Then
.Visible = False
ElseIf IsDate(.Name) Then
'Datum in korrekter Reihenfolge zusammensetzen für Umwandlung via CDate
strDatum = Split(.Name, "/")(2) & "-" & Split(.Name, "/")(1) & "-" & Split(.Name, "/")(0)
If CDate(strDatum) 

Anzeige

335 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige