Microsoft 365 Annuler Segment

achraf26

XLDnaute Occasionnel
Bonjour
j'ai crée un segment d'une colonne (Tableau), je voudrais rajouter dans la même liste de segment "Tous" pour pouvoir annuler le filtre et voir tout à la place d'appuyer sur la croix rouge.
est ce quelq'un peut me proposer une idée ?
Merci à vous
 

Pièces jointes

  • Test Annuler filtre.xlsx
    12.6 KB · Affichages: 6

laurent950

XLDnaute Barbatruc
Bonsoir @chris
@achraf26
RE
Ce qui équivaut à cliquer sur le bouton avec la croix rouge donc un clic au lieu d'un autre... Quel intérêt ?

La solution : (VBA)
À partir d'un tableau structuré dans Excel, il est possible de créer des segments. Un segment, dans ce contexte, est un outil visuel (aussi appelé slicer) qui permet de filtrer les données d'un tableau structuré ou d'un tableau croisé dynamique. Il s'agit d'une fonctionnalité d'Excel qui rend le filtrage plus intuitif, car elle permet de sélectionner visuellement les valeurs à afficher via des boutons interactifs, plutôt que d'utiliser des menus déroulants traditionnels.

Dans ce cas précis, lorsqu'on souhaite supprimer tous les filtres appliqués à un tableau structuré (un type de tableau spécifique à Excel qui permet de mieux gérer les données avec des fonctionnalités avancées, comme le filtrage, le tri, et les calculs automatiques), la seule solution est d'utiliser le modèle objet Slicer d'Excel. Ce modèle permet d'accéder aux segments associés à un tableau structuré et de les manipuler pour, par exemple, désactiver les filtres appliqués.

VB:
Sub ClearFiltresSegments()
'
' Descriptif du Code :
' Ce code permet de retirer tous les filtres actifs des tableaux structurés présents sur la feuille active du classeur.
' Il cible les segments (slicers) liés aux tableaux structurés, pour ensuite les défiltrer.
'
'
' Commentaire du code :

' 1. Déclaration de la variable cls pour représenter le classeur actif.
Dim cls As Workbook
    ' On associe la variable cls au classeur actif.
    Set cls = Workbooks(ActiveWorkbook.Name)

' 2. Déclaration de la variable wks pour représenter la feuille de calcul active.
Dim wks As Worksheet
    ' On associe la variable wks à la feuille de calcul active dans le classeur.
    Set wks = cls.Worksheets(ActiveSheet.Name)

' 3. Déclaration de la variable ts pour représenter la collection de tous les tableaux structurés (ListObjects) présents sur la feuille active.
Dim ts As ListObjects
    ' On associe ts à la collection de tableaux structurés de la feuille active.
    Set ts = wks.ListObjects

' 4. Déclaration de la variable t pour représenter un tableau structuré unique au sein de la collection ts.
Dim t As ListObject
    ' On cible un tableau structuré spécifique nommé "Tableau2".
    Set t = ts("Tableau2")

' 5. Déclaration de la variable slice pour représenter un segment (Slicer) lié aux tableaux structurés.
Dim slice As Slicer

' 6. Boucle For Each pour parcourir chaque tableau structuré de la feuille.
For Each t In ts
    ' Boucle For Each pour parcourir chaque segment (Slicer) associé au tableau structuré t.
    For Each slice In t.Slicers
        ' Supprime tous les filtres appliqués au segment slice.
        slice.SlicerCache.ClearAllFilters
    Next slice
Next t
End Sub
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
513

Membres actuellement en ligne

Statistiques des forums

Discussions
314 738
Messages
2 112 339
Membres
111 513
dernier inscrit
jeanmarty