Datenquelle von Pivot-Tabellen mit VBA ändern

Datenquelle von Pivot-Tabellen mit VBA ändern

Ich suche nach einem Code, mit dem ich die Datenquelle meiner Pivot-Tabellen von einem Blatt auf eine andere Datenquelle ändern kann. Das Datenquellenblatt ist identisch, nur mit anderen Daten.

Ich habe einen Code, den ich aus dem Internet genommen habe, aber anstatt die Datenquelle meines aktiven Blattes zu ändern, ändert er die Datenquelle auf allen meinen Blättern.

Leider weiß ich nicht viel über VBA-Codierung und weiß nicht, wie ich den Code so ändern kann, dass er nur mein aktives Blatt beeinflusst. Ich hoffe, dass mir jemand helfen kann.

Option Explicit

Sub ChangeDataSourceForAllPivotTables()

    Dim wb                  As Workbook
    Dim ws                  As Worksheet
    Dim pt                  As PivotTable
    Dim rSourceData         As Range

    If ActiveWorkbook Is Nothing Then Exit Sub

    On Error GoTo ErrHandler

    Set wb = ActiveWorkbook

    Set rSourceData = wb.Worksheets("Sheet1").Range("A1").CurrentRegion 'change the name of the worksheet accordingly

    For Each ws In wb.Worksheets
        For Each pt In ws.PivotTables
            pt.ChangePivotCache wb.PivotCaches.Create(xlDatabase, rSourceData.Address(, , , True))
            pt.RefreshTable
        Next pt
    Next ws

ExitTheSub:
    Set wb = Nothing
    Set ws = Nothing
    Set pt = Nothing
    Set rSourceData = Nothing

    Exit Sub

ErrHandler:
    MsgBox "Error " & Err.Number & ":  " & Err.Description, vbCritical, "Error"
    Resume ExitTheSub

End Sub

Vielen Dank im Voraus für die Hilfe!

Antwort1

Mit diesem Code können Sie die Quelldaten für alle Pivot-Tabellen in einem bestimmten Blatt ändern.

Sub ChangePivotSourceData()

Dim pt As PivotTable

For Each pt In ActiveWorkbook.Worksheets("Sheet1").PivotTables
         pt.ChangePivotCache ActiveWorkbook.PivotCaches.Create _
            (SourceType:=xlDatabase, SourceData:="MyData")
Next pt

End Sub

Wie es funktioniert:

  • Copy& Pastedieser Code als Standard Module.
  • Sheetund Source DataNamen sind editierbar.
  • In diesem CodeMeine Datenist einBenannter Bereich, die Sie erstellen müssen, bevor SieLAUFEN diesen Code jedes Mal, wenn Sie ändern möchtenQuelldaten für Pivot-Tabelle.

Antwort2

Ich möchte beispielsweise ein Dokument nach Zielort aufteilen und automatisch verschiedene spezifische Dateien (für jeden Zielort) mit dem entsprechenden Pivot-Diagramm erstellen. Wie aktualisiere ich die Datenquelle der neuen Pivot-Diagramme jedes Mal (Spanien, Italien, Frankreich usw.)? Da die ursprüngliche Datenquelle mit allen Zielorten (Europa) erhalten bleibt. Danke

Dim pt As PivotTable
    Dim MyData As Excel.ListObject
   
    Set MyData = Application.Range(Europe).ListObject
   
For Each pt In ActiveWorkbook.Worksheets("Chart - City").PivotTables
         pt.ChangePivotCache ActiveWorkbook.PivotCaches.Create _
            (SourceType:=xlDatabase, SourceData:="MyData")
Next pt

verwandte Informationen