Filtre Tableau Croisé Dynamique

Bonjour à tous,

J'aimerais savoir s'il est possible de changer la valeur du filtre d'un tableau croisé dynamique (fait sur la feuille 1) depuis une autre feuille de travail ?

Ci joint à titre d'exemple, je souhaite que depuis ma feuille numéro 3, je puisse changer (grâce à une liste déroulante par exemple) la valeur du filtre de mon tableau croisé dynamique sur la feuille 2 (les valeurs du filtre à modifier sont : France ou Espagne)

Est-ce possible ?

Merci pour vos réponses

118exemple.zip (4.93 Ko)

Bonsoir

Oui c'est possible. Par exemple fait ceci :

En feuille 3, mets les noms des deux pays en C8 et C9.

  • Clique droite sur l'onglet puis choisis "visualiser le code"
  • Dans la fenetre, place le code suivant :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Macro Dan
If Not Intersect(Target, Range("C8:C" & Range("C" & Rows.Count).End(xlUp).Row)) Is Nothing Then
With Sheets("Feuil2").PivotTables("Tableau Croisé Dynamique1").PivotFields("D")
    .ClearAllFilters
    .CurrentPage = Target.Value
End With
End If
End Sub

- clique sur un des deux noms dans la feuille 3, puis rends toi sur la feuille 2 pour visualiser le TCD

C'est une simple proposition, donc attention au respect des caractères et de l'orthographe dans la feuille 3 sans quoi cela peut mettre le souc dans le TCD.

Ce que je ferais, c'est faire une liste de tous les pays sur une feuille qui pourrait servir de référence à la feuille 1 mais aussi à ta liste déroulante en feuille 3

A te relire

Salut,

Ta solution est parfaite!! merci

je connais pas trop le VBA par contre!

Mon but est de le faire avec plusieurs TCD (qui possèdent le même filtre : soit France, soit Espagne) et situés sur des feuilles différentes.

Mais je n'ai pas réussi à compiler un code juste en essayant de rajouter les lignes de codes moi-même

je continue à essayer en attendant ta réponse.

a+


J'ai réussi en recopiant ces lignes à la suite :

If Not Intersect(Target, Range("C8:C" & Range("C" & Rows.Count).End(xlUp).Row)) Is Nothing Then
With Sheets("Feuil2").PivotTables("Tableau Croisé Dynamique1").PivotFields("D")
    .ClearAllFilters
    .CurrentPage = Target.Value
End With
End If

en changeant les valeurs selon la feuille et le TCD.

Bonjour,

Tu es sous Excel 2010.

Voir les segments (slicers)

152exemple.xlsx (15.75 Ko)
Jean-Eric a écrit :

Bonjour,

Tu es sous Excel 2010.

Voir les segments (slicers)

Oui mais le problème du segment est qu'il s'applique à un seul tableau croisé dynamique non ?

moi je veux modifier la valeur d'un même filtre mais sur plusieurs TCD en même temps

EDIT : Ah non on peut faire des segments sur plusieurs TCD

merci c'est génial ton aastuce c'est beaucoup plus simple que le VBA^^

Re,

Tu fais les questions et les réponses

Penses à clore le sujet.

Bonne journée

Rechercher des sujets similaires à "filtre tableau croise dynamique"