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

Forumthread: VBA Slicer Inhalt in Zelle

VBA Slicer Inhalt in Zelle
20.07.2021 21:06:35
Tim
Hallo,
ich möchte die ausgewählte Kalenderwoche meines Datenschnitts in eine Zelle schreiben, aber irgendwie klappt das bei mir nicht. Ich weiß nicht so recht wie ich den Inhalt übergeben soll. Ich habe es mit dem unten abgebildeten code versucht aber das geht nicht. Ich habe mich schon etwas gespielt aber eine Lösung ist noch nicht in Sicht. Eine weitere Frage ist ob das auch aktiv geht also beim aktiven wechsel der Kalenderwoche ohne das ich das Makro selber auslösen muss per button Kann mir da jemand vll helfen?

Sheets("Liste").Cells(20,12) = Sheets("Liste").Shapes(.SlicerItems(ActivSlicer1)
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Slicer Inhalt in Zelle
21.07.2021 09:01:54
ChrisL
Hi Tim
Modul DieseArbeitsmappe

Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
If Sh.Name = "Liste" Then
Dim si As SlicerItem
ReDim ar(0) As Variant
With ActiveWorkbook.SlicerCaches("Datenschnitt_KW")
For Each si In .SlicerItems
If si.Selected = True Then
ReDim Preserve ar(UBound(ar) + 1) As Variant
ar(UBound(ar)) = si.Name
End If
Next si
End With
Worksheets("Liste").Cells(20, 12) = Mid(Join(ar, ";"), 2, 999)
End If
End Sub
cu
Chris
Anzeige
AW: VBA Slicer Inhalt in Zelle
23.07.2021 23:12:26
Tim
Hm es funktioniert nicht. Also ich erhalte keine Fehlermeldung und auch kein Ergebnis.
Der Datenschnitt heißt KW und das Tabellenblatt Liste. Der Datenschnitt befindet sich auf dem Blatt Liste. Die Pivot Tabelle am Blatt Pivot Board. Mit dem Datenschnitt KW steuere ich 20 PivotCharts die sich auch auf dem Blatt Liste befinden. Kann es sein das bei so einer Anwendung der Code anders aussehen muss?
Anzeige
AW: VBA Slicer Inhalt in Zelle
25.07.2021 08:31:10
ChrisL
Hi
Mal den Makrorekorder aktivieren und auf den Datenschnitt drücken, danach den Code studieren. Vielleicht stimmt der interne Name vom Datenschnitt nicht überein.
cu
Chris
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Slicer Inhalt in Zelle auslesen


Schritt-für-Schritt-Anleitung

Um den Inhalt eines Excel Slicers in eine Zelle zu schreiben, kannst du folgenden VBA-Code verwenden. Dieser Code wird ausgeführt, wenn eine PivotTable aktualisiert wird:

  1. Öffne den VBA-Editor mit Alt + F11.

  2. Wähle im Projektfenster das Arbeitsblatt aus, das den Slicer enthält.

  3. Füge den folgenden Code in das Modul „DieseArbeitsmappe“ ein:

    Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
       If Sh.Name = "Liste" Then
           Dim si As SlicerItem
           Dim ar() As Variant
           ReDim ar(0) As Variant
           With ActiveWorkbook.SlicerCaches("Datenschnitt_KW")
               For Each si In .SlicerItems
                   If si.Selected = True Then
                       ReDim Preserve ar(UBound(ar) + 1) As Variant
                       ar(UBound(ar)) = si.Name
                   End If
               Next si
           End With
           Worksheets("Liste").Cells(20, 12) = Mid(Join(ar, ";"), 2, 999)
       End If
    End Sub
  4. Schließe den VBA-Editor und teste die Funktionalität, indem du den Slicer verwendest. Der Wert sollte in Zelle L20 des Blattes „Liste“ erscheinen.


Häufige Fehler und Lösungen

  • Fehlende Werte: Wenn du keine Werte in der Zelle siehst, stelle sicher, dass der Name des Slicers ("Datenschnitt_KW") korrekt geschrieben ist und genau mit dem in Excel übereinstimmt.

  • Kein Trigger: Vergewissere dich, dass die PivotTable auf dem Blatt aktualisiert wird, wenn du den Slicer änderst. Der Code wird nur aktiviert, wenn eine PivotTable aktualisiert wird.

  • Slicer nicht aktiv: Prüfe, ob der Slicer auf dem richtigen Blatt ist und ob er tatsächlich mit der PivotTable verbunden ist.


Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch die Funktion =GETPIVOTDATA() verwenden, um Daten direkt aus einer PivotTable abzurufen. Diese Methode ist jedoch weniger flexibel und nicht direkt für Slicer geeignet.


Praktische Beispiele

Angenommen, du hast einen Slicer für die Kalenderwochen, der auf die PivotTable im Blatt „Pivot Board“ zugreift. Der folgende Code zeigt, wie du den ausgewählten Wert in Zelle L20 des Blattes „Liste“ speichern kannst.

Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
    If Sh.Name = "Liste" Then
        Dim si As SlicerItem
        Dim ar() As Variant
        ReDim ar(0) As Variant
        With ActiveWorkbook.SlicerCaches("Datenschnitt_KW")
            For Each si In .SlicerItems
                If si.Selected = True Then
                    ReDim Preserve ar(UBound(ar) + 1) As Variant
                    ar(UBound(ar)) = si.Name
                End If
            Next si
        End With
        Worksheets("Liste").Cells(20, 12) = Mid(Join(ar, ";"), 2, 999)
    End If
End Sub

Dieser Code wird automatisch ausgeführt, wenn du einen Slicer auswählst, wodurch der Wert in die Zelle geschrieben wird.


Tipps für Profis

  • Verwende die SlicerCaches-Auflistung, um mehr über die Slicer in deiner Arbeitsmappe zu erfahren. Dadurch kannst du effizientere und flexiblere VBA-Skripte erstellen.

  • Nutze den slicer in excel shortcut, um schnell zwischen verschiedenen Slicern zu wechseln, was die Arbeit mit großen Datensätzen erheblich erleichtert.


FAQ: Häufige Fragen

1. Wie kann ich den Slicer-Wert automatisch aktualisieren?
Durch den oben genannten VBA-Code wird der Slicer-Wert automatisch aktualisiert, wenn du eine Änderung in der PivotTable vornimmst.

2. Was tun, wenn der Slicer nicht angezeigt wird?
Stelle sicher, dass der Slicer korrekt mit der PivotTable verbunden ist und dass du das richtige Arbeitsblatt ausgewählt hast.

3. Kann ich mehrere Slicer-Werte in einer Zelle anzeigen lassen?
Ja, der Code oben zeigt alle ausgewählten Slicer-Werte in einer Zelle an, getrennt durch ein Semikolon.

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