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
&Paste
dieser Code alsStandard Module
.Sheet
undSource Data
Namen 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