Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Pivot Tabelle Quelle per VBA ändern

Pivot Tabelle Quelle per VBA ändern
Elias
Hallo Forum,
ich habe in einer Datei die Tabelle1 und Tabelle2.
Beide haben exakt denselben Aufbau, enthalten aber Daten zweier Standorte.
Nun habe ich eine Pivottabelle in Tabelle3 erstellt, die die Tabelle1 komplett erfasst.
Da die Datei so schon recht umfangreich ist, möchte ich die Quelle der Pivot per Button umschalten,
nämlich zwischen Tabelle1 und Tabelle2.
Was ich nun benötige ist die Codezeile, die die Quelle ändert, ich komme da nicht weiter.
Alles andere ist klar.
Aus der Suche wurde ich nicht recht schlau...
Gruß
Elias
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Pivot Tabelle Quelle per VBA ändern
24.02.2010 20:11:31
fcs
Hallo Elias,
nachfolgend ein Code-Beispiel, dass du anpassen muss.
Wenn du Sorgen mit der Dateigröße bei Dateien mit Pivot-Berichten hast, dann solltest du unter den Optionen für die Pivottabelle(n) die Option "Quelldaten mt Datei speichern" deaktivieren.
Gruß
Franz
'Aufgezeichnet und modifiziert unter Excel 2007 im Kompatibilitätsmodus
Sub PivotQuelle_Tabelle1()
Call QuellePivot(wksQuelle:=Worksheets("Tabelle 1"))
End Sub
Sub PivotQuelle_Tabelle2()
Call QuellePivot(wksQuelle:=Worksheets("Tabelle 2"))
End Sub
Sub QuellePivot(wksQuelle As Worksheet)
' PivotQuelleAendern
Dim sBereich As String
Const sTabPivot As String = "Pivot" 'Name des Tabellenblatts mit Pivottabelle
With wksQuelle
'Bereich mit Quelldaten - Spalten 1 bis 8 der Tabellenblätter
sBereich = .Range(.Cells(1, 1), _
.Cells(.Rows.Count, 1).End(xlUp).Offset(0, 7)).Address(ReferenceStyle:=xlR1C1)
End With
With ActiveWorkbook
.Worksheets(sTabPivot).PivotTables(1).ChangePivotCache .PivotCaches.Create _
(SourceType:=xlDatabase, _
SourceData:=.Path & "\[" & .Name & " ]" & wksQuelle.Name & "!" & sBereich, _
Version:=xlPivotTableVersion10)
.Worksheets(sTabPivot).PivotTables(1).PivotCache.Refresh
'Quelltabelle oberhalb von Pivotbericht-Daten eintragen
.Worksheets(sTabPivot).Range("B1") = wksQuelle.Name
End With
End Sub

Anzeige
AW: Pivot Tabelle Quelle per VBA ändern
25.02.2010 01:06:48
Elias
Hallo Franz,
der erste Tip war echt Gold wert.
Ich habe erst angefangen mit Pivots zu arbeiten und taste mich mit "Versuch & Irrtum" nach und nach an die Materie... :-)
Da wurden dann aus 8MB glatt nur 1,7.
Sollte das Makro sich auch als so treffend erweisen, konnte ich leider noch nicht testen, dann ist alles bestens.
Vielen Dank.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Pivot Tabelle Quelle per VBA ändern


Schritt-für-Schritt-Anleitung

Um die Datenquelle einer Pivot Tabelle per VBA zu ändern, kannst du den folgenden Code verwenden. Dieser ermöglicht es dir, zwischen zwei Tabellen (z.B. Tabelle1 und Tabelle2) zu wechseln.

  1. Öffne die VBA-Umgebung in Excel (Alt + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub PivotQuelle_Tabelle1()
    Call QuellePivot(wksQuelle:=Worksheets("Tabelle 1"))
End Sub

Sub PivotQuelle_Tabelle2()
    Call QuellePivot(wksQuelle:=Worksheets("Tabelle 2"))
End Sub

Sub QuellePivot(wksQuelle As Worksheet)
    Dim sBereich As String
    Const sTabPivot As String = "Pivot" ' Name des Tabellenblatts mit Pivottabelle
    With wksQuelle
        ' Bereich mit Quelldaten - Spalten 1 bis 8 der Tabellenblätter
        sBereich = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 7)).Address(ReferenceStyle:=xlR1C1)
    End With
    With ActiveWorkbook
        .Worksheets(sTabPivot).PivotTables(1).ChangePivotCache .PivotCaches.Create _
            (SourceType:=xlDatabase, _
             SourceData:=.Path & "\" & .Name & "!" & wksQuelle.Name & "!" & sBereich, _
             Version:=xlPivotTableVersion10)
        .Worksheets(sTabPivot).PivotTables(1).PivotCache.Refresh
        ' Quelltabelle oberhalb von Pivotbericht-Daten eintragen
        .Worksheets(sTabPivot).Range("B1") = wksQuelle.Name
    End With
End Sub
  1. Schließe den VBA-Editor und teste die Makros, um zwischen den Datenquellen zu wechseln.

Häufige Fehler und Lösungen

  • Fehler: "Das angegebene Blatt existiert nicht."

    • Lösung: Stelle sicher, dass die Blattnamen ("Tabelle 1" und "Tabelle 2") exakt mit den Namen in deinem Excel-Dokument übereinstimmen.
  • Fehler: "Die Pivot-Tabelle kann nicht aktualisiert werden."

    • Lösung: Prüfe, ob die angegebenen Bereiche korrekt sind. Achte darauf, dass die Quelldaten in den richtigen Spalten liegen.
  • Problem: Datenquelle der Pivot Tabelle ändert sich nicht.

    • Lösung: Stelle sicher, dass das Makro korrekt aufgerufen wird und die Pivot-Tabelle tatsächlich vorhanden ist.

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du die Datenquelle auch manuell ändern:

  1. Klicke mit der rechten Maustaste auf die Pivot-Tabelle.
  2. Wähle „PivotTable-Optionen“.
  3. Gehe zum Tab „Daten“ und klicke auf „Ändern…“.
  4. Wähle den neuen Datenbereich aus und bestätige mit „OK“.

Praktische Beispiele

Angenommen, du hast zwei Tabellen mit Verkaufsdaten aus unterschiedlichen Regionen. Du kannst die Pivot Tabelle so einrichten, dass sie die Daten aus Tabelle1 oder Tabelle2 anzeigt, indem du den oben beschriebenen VBA-Code anwendest.

Wenn du beispielsweise eine Pivot Tabelle mit den Gesamtumsätzen erstellen möchtest, kannst du die Datenquelle schnell wechseln und die Ergebnisse für verschiedene Regionen analysieren.


Tipps für Profis

  • Datenquelle erweitern: Wenn du die Datenquelle einer bestehenden Pivot-Tabelle erweitern möchtest, kannst du die Methode ChangePivotCache verwenden, um den neuen Bereich hinzuzufügen, ohne die gesamte Pivot-Tabelle neu erstellen zu müssen.

  • Dynamische Datenquellen: Überlege, die Datenquelle dynamisch zu gestalten, indem du benannte Bereiche oder Tabellen verwendest. So wird die Pivot Tabelle automatisch aktualisiert, wenn neue Daten hinzugefügt werden.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Pivot-Tabellen gleichzeitig aktualisieren? Du kannst ein Makro erstellen, das über alle Pivot-Tabellen in deinem Arbeitsblatt iteriert und jede einzelne aktualisiert.

2. Kann ich die Datenquelle einer Pivot-Tabelle direkt über die Excel-Oberfläche ändern? Ja, du kannst die Datenquelle manuell über die PivotTable-Optionen ändern, ohne VBA zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige