Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
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
Makro Pivot table Datum filtern
07.09.2023 14:03:36
Tim
Hallo zusammen,

ich möchte gern per Makro ein Pivot Table auf ein bestimmtes Datum filtern, dazu habe ich folgendes bereits im Forum gefunden.

Problem dabei ist, dass scheitert und das Datum nicht findet, wie kann man das lösen?

Ausgangssituation ist ein Datumswert aus einer Tabelle, auf dem im Pivot Table der Filter gesetzt werden soll.


With Sheet_PivotLagerbestand.PivotTables("PivotTable_Aktueller_Bestand").PivotFields("Datum")
.ClearAllFilters
For i = 1 To .PivotItems.Count
If .PivotItems(i) = CDate(Format(Sheet_LagerbestandEinfach.Cells(17, 6), "MM/d/YYYY")) Then
.PivotItems(i).Visible = True
Else
.PivotItems(i).Visible = False
End If
Next
End With

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

Betreff
Datum
Anwender
Anzeige
AW: Makro Pivot table Datum filtern
07.09.2023 15:24:49
Yal
Hallo Tim,

wenn Du das Problem nicht siehst, obwohl Du die Datei hast, wird es für uns schwierig, da wir die Datei nicht haben. Es liegt wahrscheinlich an dem Datentyp in deinem speziellen Fall.
Beseitige alles darin, was nicht im Netz gehört und klicke auf "Beispieldatei hochladen".

VG
Yal
AW: Makro Pivot table Datum filtern
07.09.2023 18:01:30
Yal
Hallo Tim,

irgendwas ist bei den PivotItem vermurkst:
sichtbar ist "01.12.2022",
Caption wird als "12/1/2022" herausgegeben
Value wird fehlerhaft als Datum "12.01.2022" interpretiert, aber ab 13.12.2022 dann wieder richtig (weil Monat 13 gibt es nicht).

Ich könnte keine änderbare Einstellung finden, die diese Fehlstellung beeinflüssen könnte.
Daher habe ich das Datum-Aufbau der PivotItem per Hand vorgenommen, sodass das Datum richtig interpretiert wird.

Sub Pivot_filtern()

Dim pi As PivotItem
Dim RefDatum As Date
Dim D

On Error Resume Next
Application.ScreenUpdating = False
With ThisWorkbook.Sheets("Pivot").PivotTables("PivotTable1").PivotFields("Datum")
RefDatum = CDate(ThisWorkbook.Sheets("Pivot").Cells(1, 4))
.ClearAllFilters
For Each pi In .PivotItems
D = Split(pi.Caption, "/")
D = DateSerial(D(2), D(0), D(1)) 'anscheinend nur so kann das Datum richtig interpretiert werden
pi.Visible = False 'Default, wegen "(leer)"
pi.Visible = D = RefDatum
Next
End With
Application.ScreenUpdating = True
End Sub

(die Wiederverwendung der Variable D in 2 vers. Typen, einmal als Array, einmal als Datum, ist nicht ganz was man als gute Programmierungsstill bezeichnen würde... Nicht unbedingt nachmachen.)

VG
Yal
Anzeige
AW: Makro Pivot table Datum filtern
08.09.2023 08:24:48
Tim
Funktioniert wie gewünscht, vielen Dank!

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige