Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Pivotdetails auslesen per VBA

Pivotdetails auslesen per VBA
spezifischer
Hallo zusammen,
im Forum habe ich zwar viele Eintraege zur Erstellung von Pivot Tabellen gefunden, aber bei meinem Problem geht es genau anders herum.
Problemstellung:
  • Gegeben ist eine komplexe Pivottabelle (nur ein Sheet in der Datei ohne Detailsheet).

  • Verschiedene vordefinierte/gesetzte Filter (sind von mal zu mal anders gesetzt).

  • Meine Aufgabe ist es nun, alle ggf. gesetzten Filter zu loeschen und die Gesamtheit der Detaildaten (mehrere 1000 Datensaetze) zu verwerten.
    Frage:
    1) wie komme ich an die Detaildaten heran und kann sicherstellen, dass ich auf die ungefilterten Daten zugreife?
    2) muss ich das Pivot erst über PivotDetails bearbeiten, oder komme ich auch direkt im Pivot an die ungefilterten Daten ran?
    Leider kann ich aktuell keine Beispieldatei bereitstellen, versuche aber eine anonymisierte Version zu erstellen und hier abzulegen.
    Evtl. habt Ihr ja bereits vorab einen Tipp, wie ich zu einer Loesung komme.
    Ich wuerde mich sehr über ein paar Tipps zur Loesung meines Problemes freuen.
    Danke
    Anzeige

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

    Betreff
    Benutzer
    Anzeige
    AW: Pivotdetails auslesen per VBA
    04.11.2009 12:02:13
    fcs
    Hallo spezifischer - etwas spezifischer dürfte es schon sein ;-),
    das folgende Makro setzt im aktiven Blatt für alle Pivot-Felder alle Elemente auf visible=True.
    Karteileichen (Items ohen Daten) werden dabei gelöscht.
    Gruß
    Franz
    'Erstellt unter Excel 2003
    Sub PivotAllesAnzeigen()
    Dim pvTab As PivotTable, pvField As PivotField, pvItem As PivotItem
    Dim StatusCalc As Long
    On Error GoTo Fehler
    StatusCalc = Application.Calculation
    Set pvTab = ActiveSheet.PivotTables(1)
    If StatusCalc  xlCalculationAutomatic Then _
    Application.Calculation = xlCalculationAutomatic
    For Each pvField In pvTab.PageFields
    pvField.CurrentPage = "(Alle)"
    Next
    For Each pvField In pvTab.RowFields
    For Each pvItem In pvField.PivotItems
    If pvItem.Visible = False Then pvItem.Visible = True
    Next
    Next
    For Each pvField In pvTab.ColumnFields
    For Each pvItem In pvField.PivotItems
    If pvItem.Visible = False Then pvItem.Visible = True
    Next
    Next
    pvTab.RefreshTable
    Fehler:
    With Err
    Select Case .Number
    Case 0 'kein fehler
    Case 1004
    If Not pvItem Is Nothing Then pvItem.Delete
    Resume Next
    Case Else
    MsgBox "Fehler-nr.: " & .Number & vbLf & .Description
    End Select
    End With
    If StatusCalc  Application.Calculation Then Application.Calculation = StatusCalc
    End Sub
    

    Anzeige
    AW: Pivotdetails auslesen per VBA
    04.11.2009 12:52:41
    Luschi
    Hallo Franz,
    eine kleine Korrektur, bei: If Not pvItem Is Nothing Then pvItem.Delete muß das Not weg,
    sonst werden alle vorhandenen Items gelöscht.
    Deshalb so: If pvItem Is Nothing Then pvItem.Delete
    Gruß von Luschi
    aus klein-Paris
    AW: Pivotdetails auslesen per VBA
    04.11.2009 13:01:48
    fcs
    Hallo Luschi,
    meine Version ist schon in Ordnung.
    Der Fehler tritt hier auf, wenn die Visible-Eigenschaft eines Pivot-Items nicht gesetzt werden kann, weil es zu dem Item keine Daten gibt. Solche Items sollen dann aus der Liste gelöscht werden.
    If pvItem Is Nothing Then pvItem.Delete
    Macht ja auch keinen Sinn, denn wenn pvItem "Nothing" ist, dann ist kein Objekt zum Löschen voehanden und es kommt zu einem weiteren Fehler in der Fehler-Behandlung.
    Gruß
    Franz
    Anzeige
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Entdecke relevante Threads

    Schau dir verwandte Threads basierend auf dem aktuellen Thema an

    Alle relevanten Threads mit Inhaltsvorschau entdecken
    Anzeige
    Anzeige

    Infobox / Tutorial

    Pivotdetails auslesen in Excel per VBA


    Schritt-für-Schritt-Anleitung

    Um die Detaildaten einer Pivot-Tabelle in Excel per VBA auszulesen, kannst du das folgende Makro verwenden. Dieses Beispiel wurde unter Excel 2003 erstellt, sollte jedoch auch in neueren Versionen funktionieren.

    1. Öffne Excel und lade die Arbeitsmappe mit der Pivot-Tabelle.
    2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
    3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
    4. Kopiere und füge den folgenden Code in das Modul ein:
    Sub PivotAllesAnzeigen()
        Dim pvTab As PivotTable, pvField As PivotField, pvItem As PivotItem
        Dim StatusCalc As Long
        On Error GoTo Fehler
        StatusCalc = Application.Calculation
        Set pvTab = ActiveSheet.PivotTables(1)
    
        If StatusCalc <> xlCalculationAutomatic Then _
            Application.Calculation = xlCalculationAutomatic
    
        For Each pvField In pvTab.PageFields
            pvField.CurrentPage = "(Alle)"
        Next
    
        For Each pvField In pvTab.RowFields
            For Each pvItem In pvField.PivotItems
                If pvItem.Visible = False Then pvItem.Visible = True
            Next
        Next
    
        For Each pvField In pvTab.ColumnFields
            For Each pvItem In pvField.PivotItems
                If pvItem.Visible = False Then pvItem.Visible = True
            Next
        Next
    
        pvTab.RefreshTable
    Fehler:
        With Err
            Select Case .Number
                Case 0 ' kein Fehler
                Case 1004
                    If Not pvItem Is Nothing Then pvItem.Delete
                    Resume Next
                Case Else
                    MsgBox "Fehler-nr.: " & .Number & vbLf & .Description
            End Select
        End With
    
        If StatusCalc <> Application.Calculation Then Application.Calculation = StatusCalc
    End Sub
    1. Schließe den VBA-Editor und kehre zu Excel zurück.
    2. Führe das Makro über Entwicklertools > Makros aus.

    Mit diesem Makro werden alle Filter in der Pivot-Tabelle aufgehoben, sodass du Zugriff auf alle Detaildaten hast.


    Häufige Fehler und Lösungen

    • Fehler: "Fehler-nr.: 1004"
      Dieser Fehler tritt auf, wenn ein Pivot-Item nicht sichtbar gemacht werden kann, weil es keine Daten gibt. Um dies zu beheben, wird das Item in der Fehlerbehandlung gelöscht.

    • Fehler beim Löschen von Items
      Achte darauf, dass die Zeile If Not pvItem Is Nothing Then pvItem.Delete korrekt ist. Das "Not" sollte nicht weggelassen werden, da es sonst zu einem Fehler kommt.


    Alternative Methoden

    Falls du keine VBA-Lösung verwenden möchtest, kannst du auch die Pivot-Tabelle manuell bearbeiten:

    1. Klicke auf die Pivot-Tabelle.
    2. Verwende die Filteroptionen in den Pivot-Feldern, um die Sichtbarkeit der Elemente anzupassen.
    3. Setze alle Filter zurück, um die vollständigen Daten anzuzeigen.

    Praktische Beispiele

    Angenommen, du hast eine Pivot-Tabelle mit Verkaufsdaten. Mit dem oben genannten Makro kannst du alle Filter entfernen und auf die vollständige Liste aller Verkäufe zugreifen.

    Beispiel:

    • Ursprüngliche Filter: Nur Verkäufe aus dem Jahr 2022 sind sichtbar.
    • Nach Ausführen des Makros: Alle Verkaufsdaten aus allen Jahren sind sichtbar.

    Tipps für Profis

    • Verwende Option Explicit am Anfang jedes Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
    • Füge Kommentare zu deinem Code hinzu, um ihn für andere (oder dich selbst in der Zukunft) verständlicher zu machen.
    • Teste das Makro zunächst in einer Kopie deiner Arbeitsmappe, um Datenverlust zu vermeiden.

    FAQ: Häufige Fragen

    1. Wie kann ich das Makro anpassen?
    Du kannst das Makro anpassen, indem du die Filterbedingungen in den For Each-Schleifen änderst.

    2. Funktioniert das Makro in allen Excel-Versionen?
    Das Beispiel wurde in Excel 2003 erstellt, sollte aber auch in neueren Versionen funktionieren. Achte jedoch darauf, dass sich die Benutzeroberfläche geändert haben könnte.

    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