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

Forumthread: SlicerCache Auslesen

SlicerCache Auslesen
16.10.2020 10:42:47
Timo
Hallo,
Ich habe einen Datenschnitt einer Pivottabelle erstellt, aus diesen Datenschnitten würde ich nun gerne per Funktion die Selektierten SlicerItems aus den aktuell sichtbaren Items auslesen.
In den Datenschnitten ist die Option "Elemente ohne Daten ausblenden" aktiviert.
Mit meiner Funktion werden aber alle SlicerItems(auch die aktuell nicht angezeigten) ausgelesen, trotz dass ich in der Schleife oSlicerCache.VisibleSlicerItems verwende....
Public Function GetSlicerSelection(Datenquelle As String) As String
Dim oSlicerCache     As SlicerCache
Dim oSlicerItem      As SlicerItem
Dim lngSlicerCount   As Long
Dim strSlicerAuswahl As String
Application.Volatile
Set oSlicerCache = ActiveWorkbook.SlicerCaches(Datenquelle)
For Each oSlicerItem In oSlicerCache.VisibleSlicerItems
If oSlicerItem.Selected Then
strSlicerAuswahl = strSlicerAuswahl & oSlicerItem.Value & " " & vbCrLf
End If
lngSlicerCount = lngSlicerCount + 1
Next oSlicerItem
GetSlicerSelection = strSlicerAuswahl
End Function

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SlicerCache Auslesen
16.10.2020 11:06:01
Timo
Ich habe den Code abgewandelt. Mit der Option hasdata lässt sich das Ganze umsetzen
Public Function GetSlicerSelection(Datenquelle As String) As String
Dim oSlicerCache     As SlicerCache
Dim oSlicerItem      As SlicerItem
Dim lngSlicerCount   As Long
Dim strSlicerAuswahl As String
Application.Volatile
Set oSlicerCache = ActiveWorkbook.SlicerCaches(Datenquelle)
For Each oSlicerItem In oSlicerCache.VisibleSlicerItems
If oSlicerItem.Selected And oSlicerItem.HasData = True Then
strSlicerAuswahl = strSlicerAuswahl & oSlicerItem.Value & " " & vbCrLf
End If
lngSlicerCount = lngSlicerCount + 1
Next oSlicerItem
GetSlicerSelection = strSlicerAuswahl
End Function

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

SlicerCache Auslesen in Excel


Schritt-für-Schritt-Anleitung

Um die ausgewählten SlicerItems aus einem SlicerCache in Excel auszulesen, kannst du die folgende VBA-Funktion verwenden. Diese Funktion berücksichtigt nur die sichtbaren SlicerItems und filtert die aus, die keine Daten haben.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Kopiere den nachstehenden Code in das Modul:
Public Function GetSlicerSelection(Datenquelle As String) As String
    Dim oSlicerCache     As SlicerCache
    Dim oSlicerItem      As SlicerItem
    Dim strSlicerAuswahl As String
    Application.Volatile
    Set oSlicerCache = ActiveWorkbook.SlicerCaches(Datenquelle)

    For Each oSlicerItem In oSlicerCache.VisibleSlicerItems
        If oSlicerItem.Selected And oSlicerItem.HasData = True Then
            strSlicerAuswahl = strSlicerAuswahl & oSlicerItem.Value & " " & vbCrLf
        End If
    Next oSlicerItem

    GetSlicerSelection = strSlicerAuswahl
End Function
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Du kannst die Funktion jetzt in einer Zelle verwenden, z.B. =GetSlicerSelection("DeinSlicerName").

Häufige Fehler und Lösungen

  • Problem: Die Funktion gibt alle SlicerItems aus, auch die nicht sichtbaren.

    • Lösung: Stelle sicher, dass du die VisibleSlicerItems und die HasData-Eigenschaft in deiner Schleife verwendest, wie im obigen Code beschrieben.
  • Problem: Fehler beim Zugriff auf ActiveWorkbook.SlicerCaches.

    • Lösung: Überprüfe, ob der angegebene Datenquelle-Name korrekt ist und der Slicer existiert.

Alternative Methoden

Falls du die SlicerItems nicht per VBA auslesen möchtest, kannst du auch:

  • PivotTable-Funktionen verwenden: Wenn dein Slicer mit einer PivotTable verbunden ist, kannst du die Filter direkt in der PivotTable nutzen.
  • Power Query: Importiere die Daten und filtere sie dort basierend auf den Slicer-Auswahlen.

Praktische Beispiele

Angenommen, du hast einen Slicer mit dem Namen "ProduktSlicer". Um die ausgewählten Produkte auszulesen, nutze die Funktion wie folgt:

=GetSlicerSelection("ProduktSlicer")

Dies gibt dir eine Liste der aktuell ausgewählten Produkte zurück.


Tipps für Profis

  • Nutze Application.Volatile, um sicherzustellen, dass die Funktion bei jedem Berechnen aktualisiert wird.
  • Experimentiere mit verschiedenen SlicerCaches, um den vollen Umfang der slicercaches vba-Funktionen zu verstehen.
  • Erwäge, Fehlerbehandlungen in deinen Code einzufügen, um unerwartete Probleme zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich alle SlicerItems eines SlicerCache auslesen?
Verwende die SlicerItems-Eigenschaft anstelle von VisibleSlicerItems. Beachte, dass dies auch ausgeblendete Items zurückgibt.

2. Funktioniert dies in allen Excel-Versionen?
Die gezeigte Methode ist für Excel 2013 und spätere Versionen geeignet, die die SlicerCache-Objekte unterstützen.

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