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 - Pivot Tabellen_Filter für alle gleichzeitig ändern
#1
Liebe Excel Mitstreiter,
 
nach stundenlangem Probieren und Dr. Google verfluchen würde ich Euch gerne folgende Frage stellen:
 
In einem Excel Worksheet habe ich einige Pivot Tabellen. Diese haben alle das Feld „Completion Date“ eingebunden. Nun möchte ich per VBA für alle Pivot Tabellen gleichzeitig den Datumsfilter für dieses Feld („Completion Date“) auf „This Year“ ändern.
Dies habe ich folgendermaßen versucht und ich verstehe leider absolut nicht, warum dies nicht klappt: Huh
Code:
Option Explicit
Sub Test()
       Dim ws As Worksheet
       Dim pt As PivotTable
     
       For Each ws In Worksheets
           For Each pt In ws.PivotTables
               pt.PivotFields("Completion Date").ClearAllFilters
               pt.PivotFields("Completion Date").PivotFilters.Add Type:=xlDateThisYear
           Next
       Next
End Sub

Der Fehler wird immer für die erste Zeile pt.PivotFields… angezeigt.
Ich wäre mega dankbar wenn jemand mir hier auf die Sprünge helfen würde und bedanke mich schon mal im Voraus für die investierte Zeit!!
 
Beste Grüße
Tim
Antworten Top
#2
Hi,
du durchläufst alle Pivots auf allen Arbeitsblättern.
wenn nun das Feld nicht existiert bei der ersten getroffenen Pivot fliegt es natürlich ab.

Oder hast du wirklich in allen Pivots dieses Feld.
Gruß Jeanie
Antworten Top
#3
Hallo Jeanie,

vielen lieben Dank für die Information - das war die Lösung!
Solche Fehler passieren wenn man kaum Ahnung von VBA hat und sich den Code zusammenkopiert... Leider war mir nämlich nicht bewußt, dass der Code auf alle Arbeitsblätter angewandt wird.
Ich würde ihn gerne nur auf eines anwenden. Weißt Du ob dies möglich ist?

Besten Dank
Tim
Antworten Top
#4
Irgendwie soSmile


Sub Test()
       Dim ws As Worksheet
       Dim pt As PivotTable
      set ws = worksheets("MeinTollesPivotBlattoderwieimmeresauchheißt")
        with ws
            For Each pt In ws.PivotTables
               pt.PivotFields("Completion Date").ClearAllFilters
               pt.PivotFields("Completion Date").PivotFilters.Add Type:=xlDateThisYear
           Next
        end with
End Sub
Gruß Jeanie
Antworten Top
#5
Code:
Sub M_snb()
  For Each it In sheet1.PivotTables
    with it.PivotFields("Completion Date")
      .ClearAllFilters
      .PivotFilters.Add 50
    end with
  Next
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#6
Hallo Jeanie, hallo snb,

vielen Dank für Euren Input! Ich bin leider noch nicht dazu gekommen es zu testen, aber ich werde Euch die Tage auf jeden Fall Rückmeldung geben!
Euch erst einmal ein schönes WE.

Beste Grüße
Tim
Antworten Top
#7
Ich habe nun beide Varianten gestestet und beide funktionieren einwandfrei, vielen Dank an euch beiden!
Da der Code von snb weiterentwickelt und performanter ist, kommt dieser nun zum Einsatz.

Tausend Dank an Euch! :18:

Beste Grüße
Tobi
Antworten Top


Gehe zu:


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