XL 2016 Cocher automatiquement les derniers 5 elemenents d'un filtre

falleh

XLDnaute Nouveau
Bonjour,

J'ai un fichier excel avec 14 tableaux croises dynamiques. A chaque semaine je rajoute des données sur une feuille de calcul pour mettre a jour les tableaux croises dynamiques. A chaque semaine, je dois faire "Actualiser tout" puis aller sur mes 14 tableaux et dans les filtres je dois cocher manuellement la dernière semaine que j'ai rajoute. Le but est toujours d'afficher les données des 5 dernières semaines. Ca devient lours de faire l'operation 14 fois. Est que 'il ya une manière de cocher automatiquement les 5 derniers choix d'un filtre ?

Merci
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, falleh

falleh
L'enregistreur de macros donne ce type de code
VB:
Sub Macro1()
ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("ITEMS").PivotFilters.Add2 _
Type:=xlTopCount, _
DataField:=ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Somme de ITEM1"), _
Value1:=5
End Sub
Partant de là, il suffirait de compléter en faisant une boucle sur tous les TCD du classeur et appliquer le filtre sur chaque en se basant sur la syntaxe ci-dessus.
 

chris

XLDnaute Barbatruc
Bonjour à tous

Si la source est la même un segment peut déjà limiter à une manip...

Faisable également sans manip ni VBA en ajoutant une colonne à la source selon cette méthode Ce lien n'existe plus

Egalement possible en utilisant PowerQuery intégré à 2016
 

falleh

XLDnaute Nouveau
Merci beaucoup a vous deux pour la réponse rapide :) La solution de rajouter deux colonnes est efficace mais je ne peux pas changer le gabarit du fichier en rajoutant des colonnes puisque plusieurs collègues travaillent sur le fichier, Je suis donc tenu de travailler avec une macro. Staple , je ne comprends pas la variable "Somme de Item1", ce sont des dates que je fais afficher. Voici le fichier Excel en piece jointe pour comprendre la situation. Ce sont les tableaux de la worksheet "Tableau" que je veux mettre a jour. Ses données d proviennent de la worksheet "PA0000". Merci de m'éclairer la dessus :)
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

Ma macro n'était qu'illustrative (testé sur un TCD quelconque avec des données bidons)
Ce qui compte c'est d'avoir la syntaxe VBA pour filtrer les 5 derniers éléments
PivotFilters.Add2 Type:=xlTopCount
et
Value1:=5

Donc créé ton propre code VBA en laissant tourner l'enregistreur de macros
Il faudra ensuite l'adapter pour l'intégrer dans une boucle qui traitera tous les TCD de ton classeur.
 
Dernière édition:

falleh

XLDnaute Nouveau
Rebonjour Staple1600,

Je suis debutant en VBA, je vois ce que tu veux dire mais je l'essaie et ca ne marche pas. j'ai reduit le fichier au maximum. Peux-tu y inserer ton code stp ? Merci
 

Pièces jointes

  • 2019-06-10 TEST - Copie.xlsx
    921.3 KB · Affichages: 5

Staple1600

XLDnaute Barbatruc
Re

Utilise le filtre comme suit
Filtres s'appliquant aux valeurs
10 premiers

Et là régler sur
Haut 5
Voir ci-dessous
01falleh.jpg
 

chris

XLDnaute Barbatruc
Bonjour à tous

Je ne comprends pas qu'avec 2016 tu n'aies pas mis ta source sous forme de tableau structuré : faire un TCD sur des colonnes entières n'est pas une bonne pratique d'autant que tu as des calculs sous les données...

Dans certaines de tes colonnes sources tu as tantôt du texte, tantôt des nombres ce qui peut être source de problème pour les TCD (a priori elles ne sont pas utilisées ici)

Une solution PowerQuery avec la source sous forme de tableau (incontournable comme tu peux t'en convaincre ici https://fauconnier.developpez.com/tutoriels/tableaux-structures/)

Pas de code, juste actualiser les TCD...
 

Pièces jointes

  • 5semaines_PQ.xlsx
    996.5 KB · Affichages: 6

Discussions similaires

Réponses
12
Affichages
517

Statistiques des forums

Discussions
312 104
Messages
2 085 344
Membres
102 865
dernier inscrit
FreyaSalander