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

Forumthread: Pivot-Quelle per VBA ändern

Pivot-Quelle per VBA ändern
dave
Hallo zusammen,
ich möchte den Datenbereich einer Pivottabelle per VBA ändern.
Dazu habe ich zunächst mal den Recorder bemüht:
    ActiveSheet.PivotTables("PivotTable1").ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"...Pfad...\[Datei.xlsm]Daten!Z1S1:Z12498S11" _
, Version:=xlPivotTableVersion12)
Wenn ich nun aber genau diese Zeile in meinen Code einfüge, erhalte ich "Laufzeitfehler 438, Objekt unterstützt diese Eigenschaft oder Methode nicht".
Hat jemand eine Idee, woran das liegt?
Danke und Gruß
David
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Pivot-Quelle per VBA ändern
19.05.2011 16:18:37
dave
Nachtrag:
Der Fehler ist "Laufzeitfehler 1004 - Die Pivottable-Eigenschaft des Worksheet-Objektes kann nicht zugeordnet werden"
Gruß
David
AW: Pivot-Quelle per VBA ändern
19.05.2011 17:33:39
Jana
Hallo David,
die Pivot-Tabellen haben sich manchmal etwas zickig...
Ich habe leider Code-technisch noch keine Lösung gefunden, definiere aber die Pivot-Tabelle über die gesamte Länge des Tabelle und der zuvor definierten breite. Per Code lasse ich die Tabelle lediglich aktualisieren. Sollten noch Diagramme auf die Pivot-Tabelle zugreifen, natürlich auch diese.
Damit kann das Tool auf seinen festen Datenbereich zugreifen, den es leider auch braucht.
Scheinbar erneuerst/änderst du die Grunddaten. Das kannst du ja dann problemlos mit VBA machen.
Mit dieser nicht ganz hübschen Lösung hinsichtlich der visuellen Ausgabe dennoch kein Problem; leere Zeilen ausbleden, kann in den Pivot-Funktionen ja alles eingestellt werden.
Viele Erfolg; Gruß Jana
Anzeige
AW: Pivot-Quelle per VBA ändern
20.05.2011 08:01:09
dave
Hallo Jana,
Das Problem ist (war), dass das vorhandene Datenblatt für die PT gelöscht wird, neu aufgebaut und dann diverse Zeilen/Spalten gelöscht werden, so dass sich der Datenbereich dann durch die "tolle" Excel-Automatik verkleinert und nicht mehr die gesamte Tabelle erfasst.
Ich habe jetzt aber einen anderen Weg genommen, indem ich einfach den Datenbereich per Namensdefinition festgelegt habe, die mit INDIREKT fixiert ist.
Trotzdem danke.
Gruß
David
Anzeige
;

Forumthreads zu verwandten Themen

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-Quelle per VBA ändern: So geht's


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)", wähle Einfügen > Modul.

  3. Code eingeben: Füge den folgenden Code ein, um den Datenbereich der Pivot-Tabelle zu ändern:

    Sub PivotDatenquelleAendern()
       Dim pvt As PivotTable
       Set pvt = ActiveSheet.PivotTables("PivotTable1")
    
       pvt.ChangePivotCache ActiveWorkbook.PivotCaches.Create( _
           SourceType:=xlDatabase, _
           SourceData:="Daten!Z1:S12498", _
           Version:=xlPivotTableVersion12)
    End Sub
  4. Anpassen des Datenbereichs: Stelle sicher, dass der SourceData-Parameter den korrekten Bereich deiner Daten definiert.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um die Pivot-Quelle zu ändern.


Häufige Fehler und Lösungen

  • Laufzeitfehler 438: Dieser Fehler tritt häufig auf, wenn die Pivot-Tabelle nicht korrekt referenziert wird. Überprüfe den Namen der Pivot-Tabelle.
  • Laufzeitfehler 1004: Dieser Fehler kann auftreten, wenn der Datenbereich nicht korrekt festgelegt ist. Stelle sicher, dass der SourceData-Bereich existiert und korrekt eingegeben wurde.

Alternative Methoden

  • Namensdefinition verwenden: Du kannst einen benannten Bereich in Excel erstellen, um den SourceData-Bereich dynamisch anzupassen. Definiere den Bereich in Excel und verwende dann diesen Namen im VBA-Code, z.B. SourceData:="MeinDatenBereich".
  • Tabelle nutzen: Verwende eine Excel-Tabelle als Datenquelle. Diese passt sich automatisch an, wenn du Daten hinzufügst oder entfernst.

Praktische Beispiele

  1. Datenbereich einer Pivot-Tabelle ändern: Angenommen, deine Daten stehen in Daten!A1:D100, und du möchtest die Pivot-Tabelle aktualisieren:

    Sub PivotDatenbereichAendern()
       Dim pvt As PivotTable
       Set pvt = ActiveSheet.PivotTables("PivotTable1")
    
       pvt.ChangePivotCache ActiveWorkbook.PivotCaches.Create( _
           SourceType:=xlDatabase, _
           SourceData:="Daten!A1:D100", _
           Version:=xlPivotTableVersion12)
    End Sub
  2. Datenschnitt Schriftgröße ändern: Um die Schriftgröße eines Datenschnitts zu ändern, kannst du den folgenden Code verwenden:

    Sub DatenschnittSchriftgroesseAendern()
       Dim schnitt As Slicer
       For Each schnitt In ActiveSheet.Slicers
           schnitt.Shape.TextFrame.Characters.Font.Size = 12 ' Schriftgröße auf 12 setzen
       Next schnitt
    End Sub

Tipps für Profis

  • Daten regelmäßig aktualisieren: Setze eine automatische Aktualisierung der Pivot-Tabelle ein, wenn sich der Datenbereich ändert.
  • Dynamische Bereiche: Nutze dynamische benannte Bereiche oder Tabellen, um den SourceData-Bereich flexibel zu halten.
  • Debugging: Nutze den Debugger im VBA-Editor, um Fehler schnell zu identifizieren und zu beheben.

FAQ: Häufige Fragen

1. Wie ändere ich den Datenbereich einer Pivot-Tabelle ohne VBA?
Du kannst den Datenbereich auch manuell über die PivotTable-Optionen ändern. Klicke mit der rechten Maustaste auf die Pivot-Tabelle und wähle PivotTable-Optionen > Daten > Datenquelle ändern.

2. Welche Excel-Version benötige ich für die Verwendung von VBA in Pivot-Tabellen?
Du kannst VBA in Excel 2010 und neueren Versionen verwenden, um die Datenquelle von Pivot-Tabellen zu ändern.

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