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

Datenschnitt für PivotTabelle per Button

Forumthread: Datenschnitt für PivotTabelle per Button

Datenschnitt für PivotTabelle per Button
13.08.2020 13:35:22
Silas
Hallo Zusammen,
ich kenne VBA erst seit einer Woche und die Lösungsvorschläge durch meine Internetrecherche helfen auch nicht weiter.
Deswegen sieht der Code in meiner Beispieldatei wahrscheinlich ziemlich komisch aus.
Ich hoffe Ihr könnt mir weiterhelfen.
In meiner Liste soll per Button sich eine PivotTabelle erstellen, auf Basis von der dynamischen Tabelle "AlleRechnungen" (In diese Tabelle werden schon seit mehreren Jahren die Rechnungen eingetragen).
Das funktioniert soweit auch schon sehr gut.
Jetzt soll sich zusätzlich zu der PivotTabelle noch ein Datenschnitt öffnen.
Mein Problem: In dem Arbeitsblatt wird jedes Jahr eine neue PivotTabelle erstellt, mit einem jeweiligen Datenschnitt der alle Rechnungen aus dem jeweiligen Jahr filtert.
Wenn ich allerdings das durch mein Makro erstellen lassen möchte, wird ein Fehler gemeldet, da ja der SlicerCache schon einmal verwendet wurde.
Egal wie ich versuche das mit einer Variable o.ä. zu "verallgemeinern", dass es jedes Jahr aufs Neue wieder funktioniert, schaffe ich leider nicht.
Als Ansatz hier mein bisheriger Code-Ausschnitt:
'Datenschnitt für die PivotTabelle einfügen (mit Infobox), positionieren und fixieren
SlicerName = InputBox("Bitte geben Sie das Jahr für den neuen Datenschnitt ein.", "Jahr für den Datenschnitt")
ActiveWorkbook.SlicerCaches.Add2(ActiveSheet.PivotTables(pivotName), "Jahr"). _
Slicers.Add ActiveSheet, , (SlicerName), (SlicerName), 188.25, 639.75, 144, 198.75
ActiveSheet.Shapes.Range(Array(SlicerName)).Select
With ActiveSheet.Shapes(SlicerName)
.Height = 155.905511811
.Width = 77.9527559055
End With
ActiveSheet.Shapes(SlicerName).IncrementLeft 877.5
ActiveSheet.Shapes(SlicerName).IncrementTop -136.5
ActiveWorkbook.SlicerCaches("Datenschnitt_Jahr2").Slicers(SlicerName). _
DisableMoveResizeUI = True
ActiveSheet.Shapes(SlicerName).LockAspectRatio = msoTrue
Zur Datei: https://www.herber.de/bbs/user/139610.xlsm
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datenschnitt für PivotTabelle per Button
14.08.2020 12:13:12
fcs
Hallo Silas,
mache dir das Leben einfacher und arbeite bei den Pivots für die einzelnen Jahre ohne Datenschnitt.
Füge im Pivot-Bericht im Bereich "Filter" zusätzlich das Feld "Jahr" ein. Da sich der Wert ja nicht ändert muss er nur einmalig auf das entsprechende Jahr gesetzt werden - damit das funktioniert muss mindestens eine Datenzeile für das Jahr in der Liste der Rechnungen vorhanden sein.
Ausserdem ist es zur Bedienung einfacher, wenn da +-Zeichen der Gliederung hier links von den Daten steht. Kann man über das Menue --%gtDaten--&gtGliederung einstellen.
Ich hab deine Tabelle und das Makro zum Erstellen des Pivot-Berichtes in diese Richtung angepasst und dabei dein Makro auch etwas aufgeräumt.
https://www.herber.de/bbs/user/139637.xlsm
LG
Franz
Anzeige
AW: Datenschnitt für PivotTabelle per Button
14.08.2020 13:30:42
Silas
Hi Franz,
deine Lösung ist tatsächlich viel einfacher.
Obwohl ich mit so einem Filter schon zu tun hatte, ist der mit wohl durchgegangen, weil ich mich zu sehr auf den Cache vom Datenschnitt konzentriert habe.
VIELEN VIELEN DANK für die Hilfe.
Ich wünsche alles Gute!
LG
Silas
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Datenschnitt für PivotTabellen effektiv nutzen


Schritt-für-Schritt-Anleitung

  1. Vorbereitung: Stelle sicher, dass du eine dynamische Tabelle namens "AlleRechnungen" hast, in die alle Rechnungen für jedes Jahr eingetragen werden.

  2. PivotTabelle erstellen:

    • Gehe zu Einfügen > PivotTable und wähle deine Datenquelle aus.
    • Platziere die PivotTabelle in einem neuen oder bestehenden Arbeitsblatt.
  3. Datenschnitt einfügen:

    • Verwende den folgenden VBA-Code, um einen Datenschnitt zu erstellen. Füge diesen in ein neues Modul ein:
      Sub DatenschnittHinzufuegen()
       Dim SlicerName As String
       SlicerName = InputBox("Bitte geben Sie das Jahr für den neuen Datenschnitt ein.", "Jahr für den Datenschnitt")
       ActiveWorkbook.SlicerCaches.Add2(ActiveSheet.PivotTables("PivotTable1"), "Jahr"). _
       Slicers.Add ActiveSheet, , (SlicerName), (SlicerName), 188.25, 639.75, 144, 198.75
      End Sub
    • Ändere "PivotTable1" entsprechend, falls dein PivotTabelle einen anderen Namen hat.
  4. Datenschnitt positionieren und fixieren:

    • Nach dem Erstellen des Datenschnitts kannst du ihn wie folgt anpassen:
      With ActiveSheet.Shapes(SlicerName)
       .Height = 155.9
       .Width = 77.95
       .IncrementLeft 877.5
       .IncrementTop -136.5
       .LockAspectRatio = msoTrue
      End With
  5. Farbe des Datenschnitts ändern (optional):

    • Um die Farbe des Datenschnitts zu ändern, kannst du den folgenden Code verwenden:
      ActiveWorkbook.SlicerCaches(SlicerName).Slicers(SlicerName).Shape.Fill.ForeColor.RGB = RGB(255, 0, 0) ' Rot

Häufige Fehler und Lösungen

  • Fehler: "SlicerCache schon einmal verwendet": Dieser Fehler tritt auf, wenn du versuchst, einen Datenschnitt mit dem gleichen Namen zu erstellen. Stelle sicher, dass der SlicerName einzigartig ist.

  • Excel Datenschnitt funktioniert nicht: Überprüfe, ob dein Datenbereich korrekt definiert ist und ob die PivotTabelle auf die richtige Quelle verweist.


Alternative Methoden

  • Pivot-Filter nutzen: Du kannst auch ohne Datenschnitt arbeiten, indem du das Jahr als Filter in der PivotTabelle hinzufügst. Dies ist besonders nützlich, wenn du nur einen einfachen Filter benötigst.

  • Excel Diagramm Filter Button: Wenn du ein Diagramm hast, kannst du Filter direkt im Diagramm hinzufügen, um die Daten dynamisch zu steuern.


Praktische Beispiele

  • Beispiel 1: Erstelle einen Datenschnitt für das Jahr 2022:

    • Führe den VBA-Code aus und gib "2022" als Jahr ein, um den Datenschnitt zu erstellen.
  • Beispiel 2: Ändere die Farbe des Datenschnitts:

    • Verwende den Farbcode in der oben genannten Methode, um die visuelle Darstellung anzupassen.

Tipps für Profis

  • Datenschnitt fixieren: Wenn du den Datenschnitt fixierst, wird er nicht versehentlich verschoben. Verwende die Option DisableMoveResizeUI, um dies zu erreichen.

  • Kombination von Datenschnitten: Du kannst mehrere Datenschnitte für verschiedene Felder in einer PivotTabelle verwenden, um eine bessere Datenanalyse zu ermöglichen.


FAQ: Häufige Fragen

1. Wie kann ich die Farbe eines Datenschnitts ändern?
Du kannst die Farbe eines Datenschnitts in VBA mit der Fill.ForeColor.RGB Methode anpassen.

2. Was tun, wenn der Datenschnitt nicht angezeigt wird?
Überprüfe, ob der Datenschnitt korrekt mit der PivotTabelle verbunden ist und ob die PivotTabelle aktualisiert wurde.

3. Ist es möglich, mehrere Datenschnitte für eine PivotTabelle zu haben?
Ja, du kannst mehrere Datenschnitte für verschiedene Felder hinzufügen, um die Analyse zu verfeinern.

4. Wie kann ich einen Datenschnitt fixieren?
Verwende die DisableMoveResizeUI Methode im VBA, um den Datenschnitt zu fixieren und seine Position zu sichern.

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