Automatisation filtre TCD

Bonjour à tous,

J'aurai besoin d'un petit coup de main... J'utilise cette macro ci-dessous afin de m'éviter à appliquer à chaque fois le même filtre sur les différents TCD. Je précise que mes l'ensemble de mes TCD ont des sources différentes. En saisissant donc le "Dpers" dans la cellule B2, cela l'applique sur les autres TCD.

Je me demandais s'il n'y avait pas une macro plus performante puisque celle-ci m'oblige à vérifier que les filtres "Dpers" soient identiques d'un TCD à l'autre. Par exemple lors d'un nouveau "Dpers" dans l'un des tableaux, cela pose problème...

Ci-dessous la macro :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Pt As PivotTable

If Target.Address <> "$B$2" Then Exit Sub

For Each Pt In PivotTables

If Pt.Name <> "Tableau croisé dynamique_0" Then

With Pt.PivotFields("Dpers")

' .ClearAllFilters

.CurrentPage = Target.Value

End With

End If

Next Pt

End Sub

Je suis preneur de vos propositions

Merci à vous,

Bonjour,

Pas testé !...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ptMain As PivotTable, pt As PivotTable
    If Target.Address = "$B$2" Then
        Set ptMain = Target.PivotTable
        For Each pt In Me.PivotTables
            If pt.Name <> ptMain.Name Then
                With pt.PageFields("Dpers")
                    .ClearAllFilters
                    .CurrentPage = Target.Value
                End With
            End If
        Next pt
    End If
End Sub

Merci pour votre retour Jean-Eric.

J'ai un message d'erreur : erreur d'exécution '10014 Impossible de la lire la propriété de la classe Range

Savez-vous ce que cela signifie?

Rechercher des sujets similaires à "automatisation filtre tcd"