Modifier la valeur d'un champ dans un TCD

Bonjour à tous,

J'ai sur une feuille un nombre important de tableau croisés dynamiques qui ont tous la même structure (les mêmes filtres, étiquettes de lignes et de colonnes)

J'ai besoin de remplacer la valeur d'un filtre régulièrement dans tous les tableaux croisés.

Plutôt que de le faire manuellement (c'est pénible car répétitif) je souhaiterais mettre la valeur dans une case (A1) et que tous les filtres (Code secteur) se modifient dans les différents tableaux croisés de la feuille.

J'ai trouvé une macro qui semble faire ça mais qui s'arrête en cours de route sur le filtre à modifier.

Si quelqu'un pouvait m'aider à comprendre et résoudre ce blocage ça m'aiderait grandement.

voici la macro :

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$A$1" Then Exit Sub

Dim Sh As Worksheet, Pt As PivotTable

For Each Sh In Worksheets

For Each Pt In Sh.PivotTables

With Pt.PivotFields("Code secteur")

.ClearAllFilters

.CurrentPage = Target.Value

End With

Next Pt

Next Sh

End Sub

Nota : Je suis une truffe en vba et macro en général (autant en tenir compte dans vos explications)

Par avance merci pour votre aide.

Bonjour et bonne année,

Peux-tu joindre un fichier représentatif?

Il est important de connaître la structure de tes TCDs pour t'apporter une réponse adaptée.

Cordialement.

Bonjour Jean-Eric,

Je ne peux pas t'envoyer mon fichier tel qu'il est car c'est un fichier BI et son contenu est "confidentiel" car (liste de nos clients, CA etc.)

Du coup, pour l'exemple j'ai créé un fichier similaire à coté.

Et la macro commande fonctionne dans un fichier "classique" Le problème viendrait donc de la BI

J'en conclus que c'est lié au nom des champs filtres qui ne sont pas lu par la macro tel qu'il apparaissent dans le tableau croisé.

Merci pour ton aide.

Rechercher des sujets similaires à "modifier valeur champ tcd"