Filtrage du tableau dynamic (si l'un est sélectionné désactiver l'autre)

Comme le dit le titre, j'essaie de désactiver ou de faire en sorte que le filter opposé soit par défaut sur "Tous" si l'autre est sélectionné.

Par exemple, j'ai un tableau pivot avec deux filters: "SEMAINE" et "MOIS"

Si quelqu'un sélectionne une valeur dans le filter de semaine, je veux que le filter de mois soit par défaut "(tous)" et vice versa.

Assez simple mais je ne sais pas trop comment attaquer ceci (VBA ou formule) et en plus le code.

Merci les gars!

Malheureusement, il n'y a pas d'événement qui répertorie le changement de champ pivotant. Par conséquent, mon idée est la suivante. Étape 1. Placez quelque part les variables publiques:

Public tmpM As Boolean Public tmpW As Boolean 

Étape 2. Dans le module de feuille où votre pivot est placé, mettez le code suivant:

 Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable) On Error GoTo ErrorHandler Application.EnableEvents = False If Target.PivotFields("week").AllItemsVisible = False And tmpW = True Then Target.PivotFields("month").ClearAllFilters End If If Target.PivotFields("month").AllItemsVisible = False And tmpM = True Then Target.PivotFields("week").ClearAllFilters End If tmpM = Target.PivotFields("month").AllItemsVisible tmpW = Target.PivotFields("week").AllItemsVisible Application.EnableEvents = True Exit Sub ErrorHandler: Application.EnableEvents = True End Sub 

Cela fonctionne bien avec mes exemples de données.

Modifier: la gestion des erreurs dans le code ci-dessus.