Filtre dynamique sur champ de page TCD

lenka

XLDnaute Nouveau
Bonjour à tous,

J'aimerais filtrer les champs de page ("mois début") de plusieurs TCD (onglet "TCD") en fonction de la valeur rentrée d'une cellule ("A2" dans mon onglet "TCD").

J'ai fait plusieurs tentatives de copie de codes VBA, exemple ci-dessous :

If Not Application.Intersect(Target, _
Range("A2")) Is Nothing Then
Dim Selection_Liste As String
Selection_Liste = Range("A2").Value

ActiveSheet.PivotTables("Ligne E Mensuel").PivotFields( _
"Mois début").CurrentPage = Selection_Liste

Mais je retrouve toujours le même problème : une fois que la donnée du filtre du TCD a été changée en fonction de la valeur de la cellule A2, la valeur du filtre de champ de page est écrasée, et je ne retrouve plus la valeur précédente dans mon TCD. Exemple : si mon TCD est actuellement filtré sur "1", et que je tape "3" en A2, alors la valeur "3" remplacera la valeur "1" dans le choix du champ de page du TCD.

Comment faire pour ne pas écraser la valeur existante ?
J'aimerais trouver un code VBA qui modifie les filtres de plusieurs TCD.

Je vous joins mon fichier en exemple.

Quelqu'un a-t-il la solution ?

Merci,
Lenka
 

Pièces jointes

  • Taux de panne.xlsx
    29.2 KB · Affichages: 61

lenka

XLDnaute Nouveau
Re : Filtre dynamique sur champ de page TCD

Pour ceux qui avaient le même problème d'écrasement de données, j'ai finalement appliqué ce code :
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, _
Range("A2")) Is Nothing Then
Dim Selection_Liste As String
Selection_Liste = Range("A2").Value

ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Mois début").CurrentPage = Selection_Liste
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Mois début").CurrentPage = Selection_Liste


End If

End Sub


Et je me suis assurée d'avoir une cellule A2 avec validation de données de 1 à 12 + la certitude de trouver des valeurs de mois de 1 à 12 dans ma base de données pour ne pas faire bugger la macro et écraser les données du mois dans le TCD.
 

lenka

XLDnaute Nouveau
Re : Filtre dynamique sur champ de page TCD

Bonjour et merci pour ta réponse Hasco.

En fait j'ai essayé de connecter mes tableaux avec les segments, mais Excel ne me propose pas la connexion du segment sur les autres TCD, je retrouve uniquement le TCD pour lequel j'ai créé le segment dans la liste.
Je pense (peut être à tort) que c'est parce que la source de données est différente pour chaque TCD, même si l'intitulé des champs est parfois commun.
 

poulpor78

XLDnaute Junior
Re : Filtre dynamique sur champ de page TCD

Bonjour Lenka,

Dans un de mes fichiers, j'ai fait cette manipulation en vba (mais ça pointait vers la même source)

ActiveWorkbook.SlicerCaches("Segment_Mytime11").VisibleSlicerItemsList = ActiveWorkbook.SlicerCaches("Segment_Mytime1").VisibleSlicerItemsList


A essayer.

Poulpor
 

chris

XLDnaute Barbatruc
Re : Filtre dynamique sur champ de page TCD

Bonjour

Si les sources sont différentes, il faut tester, soit dans la source, soit dans le TCD, si la valeur existe avant de toucher au filtre.

Une autre solution consiste à faire un union des deux sources soit par msquery, soit par Powerpivot.
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 506
Membres
103 566
dernier inscrit
c@b@l77540