Microsoft Excel

Herbers Excel/VBA-Archiv

SlicerCache Auslesen

Betrifft: SlicerCache Auslesen von: Timo
Geschrieben am: 16.10.2020 10:42:47

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

Betrifft: AW: SlicerCache Auslesen
von: Timo
Geschrieben am: 16.10.2020 11:06:01

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