Classe SlicerCacheLevel - un niveau hiérarchique d’une source de données OLAP filtrée par un segment (Excel VBA)
La classe SlicerCacheLevel représente un niveau hiérarchique d’une source de données OLAP filtrée par un segment. Pour utiliser une variable de classe SlicerCacheLevel, elle doit d'abord être instanciée, par exemple
Dim slccl as SlicerCacheLevel
Set slccl = ActiveWorkbook.ActiveSlicer.SlicerCacheLevel
For Each
Voici un exemple de traitement des éléments SlicerCacheLevel dans une collection
Dim slccl As SlicerCacheLevel
For Each slccl In ActiveWorkbook.SlicerCacheLevels
Next slccl
Count
Renvoie le nombre d’objets SlicerItem dans l’objet SlicerCacheLevel spécifié. En lecture seule.
Dim lngCount As Long
lngCount = ActiveWorkbook.ActiveSlicer.SlicerCacheLevel.Count
CrossFilterType
Renvoie ou définit si un segment participe au filtrage croisé avec d’autres segments qui partagent le même cache de segment, et la façon dont le filtrage croisé est affiché. Lecture-écriture. Les valeurs de retour possibles sont xlSlicerCrossFilterHideButtonsWithNoData - Le filtrage croisé est activé pour ce cache de segment, et les mosaïques sans données pour une sélection de filtrage dans d’autres segments connectés à la même source de données sont toutes estompées, xlSlicerCrossFilterShowItemsWithDataAtTop - Le filtrage croisé est activé pour ce cache de segment, et les mosaïques sans données pour une sélection de filtrage dans d’autres segments connectés à la même source de données sont toutes estompées, xlSlicerCrossFilterShowItemsWithNoData - Le filtrage croisé est activé pour ce cache de segment, et les mosaïques sans données pour une sélection de filtrage dans d’autres segments connectés à la même source de données sont toutes estompées, xlSlicerNoCrossFilter - Le filtrage croisé est totalement désactivé, afin que toutes les mosaïques soient affichées et actives (non estompées) quelles que soient les sélections de filtrage dans les autres segments.
Si plusieurs segments sont associés au même tableau croisé dynamique, par défaut, si l’élément ou les éléments que vous filtrez par dans un segment n’ont pas de données correspondantes dans un autre segment, ces éléments seront grisés. Par exemple, si vous avez un segment de pays et un département d’État, et que vous choisissez un pays dans le segment de pays, tous les États qui ne se trouvent pas dans ce pays seront grisés. Cette fonctionnalité est appelée filtrage croisé. Les paramètres de l’interface utilisateur qui correspondent au paramètre de la propriété CrossFilterType sont les cases à cocher Indiquer visuellement les éléments sans données et Afficher en dernier les éléments sans données dans la boîte de dialogue Paramètres des segments. Affecter à la propriété CrossFilterType la valeur xlSlicerCrossFilterShowItemsWithDataAtTop revient à sélectionner les deux cases à cocher Indiquer visuellement les éléments sans données et Afficher en dernier les éléments sans données. La définition de la propriété crossfiltertype, sur xlSlicerCrossFilterShowItemsWithNoData correspond à la sélection de la case à cocher indiquer uniquement les éléments sans données . Si vous désactivez les deux cases à cocher, vous définissez la propriété crossfiltertype, sur xlSlicerNoCrossFilter. Les segments filtrent les sources de données autres que OLAP (SlicerCache.** OLAP** = false) ne sont pas pris en charge par la propriété crossfiltertype, de l’objet SlicerCacheLevel Pour les segments filtrant des tableaux croisés dynamiques basés sur des plages, des listes et des sources de données relationnelles autres que OLAP, utilisez plutôt la propriété crossfiltertype, de l’objet SlicerCache .
ActiveWorkbook.ActiveSlicer.SlicerCacheLevel.CrossFilterType = xlSlicerCrossFilterHideButtonsWithNoData
Name
Renvoie le nom unique MDX du niveau de hiérarchie OLAP représenté par l’objet.
Dim strName As String
strName = ActiveWorkbook.ActiveSlicer.SlicerCacheLevel.Name
Ordinal
Renvoie la valeur ordinale de base 1 du niveau de hiérarchie représenté par l’objet SlicerCacheLevel spécifié. En lecture seule.
Dim lngOrdinal As Long
lngOrdinal = ActiveWorkbook.ActiveSlicer.SlicerCacheLevel.Ordinal
SlicerItems
Renvoie une collection SlicerItems qui contient la collection de tous les éléments Slicer pour le niveau spécifié. En lecture seule.
Dim sisSlicerItems As SlicerItems
Set sisSlicerItems = ActiveWorkbook.ActiveSlicer.SlicerCacheLevel.SlicerItems
SortItems
Cette propriété renvoie ou définit l’ordre de tri des éléments dans le Slicer. Lecture-écriture. Les valeurs de retour possibles sont xlSlicerSortAscending - Les éléments du segment sont triés dans l’ordre croissant des légendes d’élément, xlSlicerSortDataSourceOrder - Les éléments du segment sont affichés dans l’ordre indiqué par la source de données, xlSlicerSortDescending - Les éléments du segment sont triés dans l’ordre décroissant des légendes d’élément.
Le paramètre par défaut de cette propriété est xlDataSourceOrder (1).
ActiveWorkbook.ActiveSlicer.SlicerCacheLevel.SortItems = xlSlicerSortAscending
VisibleSlicerItemsList
Retourne la liste des éléments de slicer qui figurent actuellement dans le filtre de slicer. En lecture seule.
La liste des éléments de slicer est retournée sous la forme de chaînes de noms uniques MDX. Si cette liste est vide, le slicer ne filtre pas la source de données et tous les éléments de slicer sont affichés sous la forme sélectionnée.
Dim varVisibleSlicerItemsList As Variant
varVisibleSlicerItemsList = ActiveWorkbook.ActiveSlicer.SlicerCacheLevel.VisibleSlicerItemsList