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 ?
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.
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
Je n'arrive pas a vous envoyer le fichier , il passe pas parce qu'il est trop volumineux, je l'ai reduit de 10Mo a 1.6MO mais toujours trop lourd. Est ce qu'il y a un autre moyen de vous l'envoyer ?
Merci
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.
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
Je l'ai esssaye, ceci se base sur le % alors que je dois me baser sur les 5 dernieres dernieres semaines, si je fais avec le % je n'ai pas le resultat des 5 dernieres semaines.
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)