TCD filtrer via une cellule

loulou14

XLDnaute Nouveau
Bonjour

Je bute sur une problème de filtre TCD.
Je souhaite filtrer mon TCD sur une valeur bien précise (variable) qui est située dans une cellule d'un autre onglet

Je tente un code simple...sans succès

Code:
Sub MAJ_TCD1()
'
'Mise à jour du TCD1

'
    ThisWorkbook.RefreshAll
   
    Sheets("TCD1").Activate
 
    ActiveSheet.PivotTables("TCD1").PivotFields("CTM").CurrentPage = Sheets("SH1").Range("M1").Value
   
End Sub

Précision : je ne souhaite pas sélectionner la valeur via un segment car la mise à jour des données doit rester automatique


Merci d'avance pour votre aide
 

chris

XLDnaute Barbatruc
Bonjour
... je ne souhaite pas sélectionner la valeur via un segment car la mise à jour des données doit rester automatique...
Je ne saisis pas le rapport entre le segment et une éventuelle impossibilité de mettre à jour les données...

Sans succès est un peu succint : message d'erreur ? Lequel ?
Type du champ CRM et position dans le TCD ? Type de la valeur en M1 de la feuille SH1 ? ...

A noter que CurrentPage ne concerne que les champs en zone de filtre (page) monosélection.
Sinon boucle et contrôle d'existence préalable dans la source de données...
 

loulou14

XLDnaute Nouveau
Bonjour

Le code remonte une erreur d'éxécution "-2147352565 (8002000b) - Dimension spécifiée non valide pour le type de graphique en cours

Le champ CTM est en étiquette de ligne (position 2)
La valeur en M1 de la feuille SH1 est un text (lettre+chiffre).

Le segment me permet de sélectionner la valeur sur laquelle je filtre...mais c'est une opération manuelle que je souhaite éviter.
Ici je souhaite filtrer sur une valeur présente en Sheets("SH1").Range("M1").

Cordialement
 

JCGL

XLDnaute Barbatruc
Bonjour,
Salut Chris,

Peux-tu essayer avec :
Code:
ActiveSheet.PivotTables("TCD1").PivotFields("CTM").CurrentPage = Sheets("SH1").Range("M1").Text
Bise à Chris
A+ à tous
 

chris

XLDnaute Barbatruc
Bonjour
Bise à JCGL :)

Comme déjà dit, et comme indiqué par l'aide en ligne
"PivotField.CurrentPage, propriété
Cette propriété renvoie ou définit la page actuelle en indiquant le champ de page (valable uniquement pour les champs de page)."
Il te faut d'abord tout afficher puis une boucle pour masquer tout ce qui ne correspond pas au choix.
Dans la plupart des cas il faut aussi vérifier que la valeur existe dans la source...

Dérouler une liste pour sélectionner une valeur prend autant de temps que de cliquer dans un segment ou dans la liste déroulante du TCD : je ne saisis donc toujours pas le pourquoi...
 

Discussions similaires


Haut Bas