Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Daten einer Pivot Tabelle eingrenzen
#1
Guten Tag meine Lieben,

Ich habe eine sehr große Excel Tabelle mit Umsätzen, Absatzmenge etc.
Hierfür haben wir mehrere Pivot Tabellen die Daten extern bekommen.
Ich würde gerne automatisieren, dass sich das Datum zum aktuellen Tag verändert.
Das funktioniert mit dem Code auch sehr gut, dauert allerdings bei der Datenmenge unglaublich lange.
Code:
Option Explicit
Sub Test_3()

Tabelle1.Range("C2").Value = Date

Dim pvtF As PivotField
Dim pvtI As PivotItem

Set pvtF = Worksheets("Tabelle1").PivotTables("PivotTable1").PivotFields("[Zeit].[Jahr-Monat-Datum].[Jahr]")

For Each pvtI In pvtF.PivotItems
    If DateValue(pvtI.Name) = Range("C2").Value2 Then
        pvtI.Visible = True
    Else
        pvtI.Visible = False
    End If
Next pvtI

End Sub

Hätte jemand einen Tipp, wie ich die Datenmenge eingrenzen könnte oder es weiter optimieren könnte?
Also dass ich mit dem Loop zum Beispiel erst im Jahr 2021 anfange.
Wäre für jede Hilfe sehr dankbar :) 
Gruß
Felix  Blush
Antworten Top
#2
Hi

Verstehe dein Vorgehen noch nicht.
Warum ist es denn nicht möglich die Pivot einfach nach dem Datum zu filtern? 
Evtl. eine kleine Bsp. Datei.

Gruß Elex
Antworten Top
#3
Hallöchen,

direkt geht das nicht? Im Prinzip

...PivotItems(Date).Visible = False
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
Es ist möglich, dass man einfach manuell nach dem Datum filtert.
Aber da es sich um viele Pivot Tabellen handelt und der Arbeitsschritt täglich der gleiche ist, würde ich das gerne automatisieren mit Hilfe von VBA.

Wenn man in der Testdatei das Makro ausführt, funktioniert es zwar, aber dauert ewig.
Und in meinem Test wird nur ein kleiner Bruchteil der Daten genutzt.

Ich würde gerne den Bereich eingrenzen, dass das Makro nur zwischen dem 01.01.2021 und dem 31.12.2021 nach dem richtigen Datum sucht.


Angehängte Dateien
.xlsm   Test.xlsm (Größe: 327,52 KB / Downloads: 4)
Antworten Top
#5
Deine Testdaten sind "komisch", da sind Daten bis 2050 drin. Außerdem sehe ich nur eine "implizite" Verwendung des Datenmodells. Warum bereitest Du die Verwendung der Daten nicht vor? 

Aber diese Bemerkung ist interessant
Zitat:Aber da es sich um viele Pivot Tabellen handelt und der Arbeitsschritt täglich der gleiche ist, würde ich das gerne automatisieren mit Hilfe von VBA.

Man kann einen Datenschnitt anlegen und diesen mit den "vielen" Pivottabellen verbinden, also ein Filter für alle Pivottabellen
Antworten Top
#6
Hallo

Also wenn du den Filter nur auf ein Datum setzen möchtest, versuche es so.
Code:
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable2").PivotFields("Datum").CurrentPage = Date
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh

Gruß Elex
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste