Filtern mehrerer Pivot-Tabellen anhand der Dropdown-Auswahl mithilfe von VBA

Ich hoffe, jemand kann helfen. Ich habe ein Dashboard erstellt, das von einer anderen Person erstellt wurde und in dem auf Blatt 1 zahlreiche Tabellen über mehrere Blätter verteilt sind. Ich wurde gebeten, dies hinzuzufügen, und habe Pivot-Tabellen erstellt, die am besten geeignet sind die Arbeit. Das Problem, das ich habe, ist, dass ich sie brauche, um basierend auf den Dropdown-Daten auf Blatt 1 zu filtern.

Ich hoffe, dass dies über VBA möglich ist.

Ich konnte meine Pivot-Berichte anhand einer anderen Dropdown-Liste filtern, die auf Text basiert. Es ist jedoch nicht möglich, denselben Code (bei gezielter Auswahl der Option "Monat" und der zugehörigen Dropdown-Zelle) für eine Datumsauswahl zu verwenden, und ich kann auch nicht herausfinden, wie Mehrfachauswahl zulässig ist, damit ich den Datumsbereich auswählen kann.

Der von mir verwendete Code lautet wie folgt:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim ws As Worksheet
Dim pt As PivotTable
Dim pi As PivotItem
Dim strField As String

strField = "Region"

On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False

If Target.Address = Range("D2").Address Then

    For Each ws In ThisWorkbook.Worksheets
        For Each pt In ws.PivotTables
            With pt.PageFields(strField)
                For Each pi In .PivotItems
                    If pi.Value = Target.Value Then
                        .CurrentPage = Target.Value
                        Exit For
                    Else
                        .CurrentPage = "(All)"
                    End If
                Next pi
            End With
        Next pt
    Next ws

End If

Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub

Jede Hilfe, die jemand leisten kann, wäre sehr dankbar. Ich bin ziemlich neu in VBA und versuche mein Bestes, um den Code zu optimieren, den ich online finde, aber es tut mir leid.

Vielen Dan

Revised: Ich habe auch den folgenden Code ausprobiert, den ich an anderer Stelle gefunden habe und der zum Auswählen von Datumsbereichen verwendet wurde

Sub FilterPivotDates()
'
Dim dStart As Date
Dim dEnd As Date
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem

Application.ScreenUpdating = False
On Error Resume Next

dStart = Sheets("Pivots").Range("F2").Value
dEnd = Sheets("Pivots").Range("f3").Value

Set pt = ActiveSheet.PivotTable1
Set pf = pt.PivotFields("Month")

pt.ManualUpdate = True

pf.EnableMultiplePageItems = True

For Each pi In pf.PivotItems
  pi.Visible = True
Next pi

For Each pi In pf.PivotItems
 If pi.Value < dStart Or pi.Value > dEnd Then
pi.Visible = False
End If
Next pi

Application.ScreenUpdating = False
pt.ManualUpdate = False

Set pf = Nothing
Set pt = Nothing

End Sub

In dem Beispiel habe ich festgestellt, dass dies durch einen Knopf bedient wird, aber ich habe es gerade in der Tabelle versucht. Das funktioniert aber auch bei mir nicht.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage