C'est également sur le site PowerpivotPro que nous avons découvert l'idée très séduisante de filtrer au choix le Top 5, le Top 10 ou autre d'un simple clic sur un segment.
Elle peut être adaptée aux TCD n'utilisant pas Powerpivot moyennant quelques "Trucs" et un peu de VBA.
Figure 1
Nous commençons pas créer dans un onglet, qui pourra être masqué par la suite, la liste, sous forme de tableau, des niveaux de filtre souhaités dans le segment.
Puis nous créons un TCD basé sur ce tableau ainsi qu'un segment associé au champ unique de ce TCD.
A noter que ce TCD "utilitaire"
est nécessaire pour capturer, via VBA, tout clic dans le segment car le segment agit uniquement sur ce TCD.
Nous renommons ce TCD avec un nom permettant de le gérer facilement par VBA, puis déplaçons le segment sur l'onglet où se trouve le TCD sur lequel nous souhaitons l'utiliser, dans notre exemple, le TCD sur les Salaires comme sur la figure 1.
Reste à écrire deux procédures VBA :
une procédure Workbook_SheetPivotTableUpdate pour réagir à l'update du TCD "utilitaire" lors de l'utilisation du segment
l'autre, appelée par la précédente, pour :
analyser quelle valeur est sélectionnée dans le segment
puis filtrer et trier en conséquence le TCD Salaires.
Ce segment un peu particulier se combine sans problème avec les segments classiques du TCD, dans notre exemple le segment Sexe associé au TCD Salaires, comme avec des segments utilisant des polices de symboles.
On peut imaginer sur le même principe un segment pour choisir Top ou Bottom (pour filtrer les plus élévés ou les plus bas salaires)
Une fois le "truc" adopté, à vous d'imaginer d'autres utilisations...