TCD - Mise à zéro de filtre

Bonjour à tous,

J'utilise un TCD dans une feuille excel qui reprend des données dans une autre feuille pour faire des analyses statistique.

Mon TCD comporte 26 filtres, pas tous utilisés en même temps.

Pour chaque objet à analyser, je doit remettre tout les filtres sur "(Tous)" avec la souris (Mise à zéro).

Travail long et sources d'erreurs.

Je voudrais savoir si une commande ou une macro existe pour le faire automatiquement.

Merci à vous

Cordialement,

Tnecniv

Bonjour,

sans une copie identique et anonymisée , difficile de t'aider...

P.

Bonjour, Salut patrick1957,

Essaye le code suivant :

    With ActiveSheet.PivotTables("TCD3")'nom du TCD à adapter
        For Each monPivFld In .PivotFields
            .ClearAllFilters
        Next
    End With

Bonjour à tous

Le bouton (entonnoir avec croix) qui annule les filtres dans une tableau standard, les annule aussi dans le TCD du moment que la cellule active est dedans

Voila un fichier de base pour vous aider

Merci de vos réponses


Merci Raja pour cette réponse.

Au lieux de changer tous les filtres avec la commande "ClearAllFilters", peut-on mettre à zéro que certains filtres ?

23maz-filtres.xlsm (17.94 Ko)

Re,

Code adapté à ton fichier :

Sub defiltrerTCD()
    With ActiveSheet.PivotTables(1)
       For Each monPivFld In .PivotFields
            .ClearAllFilters
        Next
    End With
End Sub

Re,

Tnecniv a écrit :

peut-on mettre à zéro que certains filtres ?

Précise-toi ce que ça veut dire et lesquels tu veux.

Les Filtres utilisés sont sur la Feuill3

Merci à toi Raja

13maz-filtres-2.xlsm (19.40 Ko)

Bonjour,

Peux-tu faire l'effort de joindre un fichier représentatif de tes données ?

Cdlt.

Bonjour à tous

Tu demandes "je doit remettre tout les filtres sur "(Tous)" avec la souris" mais maintenant tu changes d'optique...

La commande indiquée répond à ta 1ère demande sans besoin de VBA (sur mon Excel cette commande a été ajoutée à la barre de lancement rapide et un clic suffit donc).

Pour faire en partie il faut effectivement du VBA et donc des précisions comme demandé par Jean-Eric...

Voila un fichier qui reprend la même base que mon fichier origine que je ne peux vous montrer pour cause de confidentialité.

Je voudrais pouvoir grâce à une macro mettre à zéro (càd (Tous)) les filtres que je réactualise à la main tout en gardant certains filtre actif exemple le critère "à valoriser" filtré sur "Oui".

Merci à tous pour votre participation.

3maz-filtres-3.xlsm (18.32 Ko)

Re

Pour le tout sauf... si le sauf est plus limité que le Tous qui n'est pas Tous

    With ActiveSheet.PivotTables("Tableau croisé dynamique1")
        .ClearAllFilters
        .PivotFields("à Valoriser").CurrentPage = "Oui"
    End With

A toi d'y ajouter les autres sauf...

Re,

Une proposition à étudier.

Cdlt.

18maz-filtres-3.xlsm (38.56 Ko)

Merci à vous deux, vos solution marche très bien.

Mais pour celle de Jean-Eric je ne sait pas comment reproduire le tableau dans la feuille "Liste" sur mon fichier d'origine ^^

Re,

Les données de la feuille "Base de données" ont été mises sous forme de tableau.

A partir des données de ce tableau, j'ai crée une liste déroulante avec les en-têtes du de celui-ci.

Cette liste est disponible dans le tableau de la feuille Liste, pour effectuer son choix de filtre (réactualisation du TCD).

A te relire.

Cdlt.

Public Sub Reset_PT()
Dim lo As ListObject
Dim pt As PivotTable
Dim pf As PivotField
Dim x As Double
    Set lo = Worksheets("Liste").ListObjects(1)
    Set pt = ActiveSheet.PivotTables(1)
    For Each pf In pt.PivotFields
        If pf.Orientation = 3 Then
            On Error Resume Next
            x = Application.Match(pf.Name, lo.DataBodyRange, 0)
            If Err.Number = 0 Then
                pf.ClearAllFilters
            Else
                Err.Clear
            End If
        End If
    Next pf
End Sub

Merci pour l'explication Jean-Eric.

ça marche nickel maintenant !

Merci à tous

Rechercher des sujets similaires à "tcd mise zero filtre"