Microsoft 365 Impossible de lire la propriété PivotTables

olivier777

XLDnaute Nouveau
Bonjour à tous :)
j'ai un petit souci
j'ai une mini base
je fais un graphique croisé dynamique
J'ai un champs "type", avec différentes valeurs dedans que je souhaite piloter en vba
j'ai essayé de faire un enregistrement automatique
Le code est le suivant (qui se retrouve dans le fichier joint) :

Sub Macro35()
ActiveSheet.ChartObjects("Graph").Activate
ActiveChart.PivotLayout.PivotTable.PivotFields("type").ClearAllFilters
ActiveSheet.PivotTables(-1).PivotFields("type").CurrentPage = "carton"
Range("G8").Select
End Sub

En exécutant ensuite pas à pas le code je tombe sur une erreur 1004 à la troisième ligne
Je ne comprends pas. Pouvez-vous m'aider ?

Merci

Olivier
 

Pièces jointes

  • Classeur1.xlsm
    23.2 KB · Affichages: 13

goube

XLDnaute Accro
Bonsoir olivier777,
Il n'est pas nécessaire d'utiliser du VBA pour faire cela, les segments le font très bien sans codage.
Cordialement.

Edit : Sinon ton problème vient du nom du TCD. il faut inscrire
Code:
PivotTables("Tableau croisé dynamique1")
au lieu de
Code:
PivotTables(-1)
 

Pièces jointes

  • Classeur1.xlsm
    24.3 KB · Affichages: 2

olivier777

XLDnaute Nouveau
Merci beaucoup pour votre réponse Goube et Roblochon :)
ça fonctionne :) (en fait j'avais mon tcd sur une autre feuille, c'est pour ça que l'enregistrement automatique me sortait -1
oui j'utilise les segments si besoin mais je souhaite en VBA car ensuite je mets à jour un autre document excel
Je vais par exemple filtrer les "cartons" pour aller faire un graphique, puis un autre type pour un autre graphique
J'ai une autre question :
mes graphiques prennent en compte des numéros de semaines
lorsque des mises à jour de sonnées interviennent, des semaines supplémentaires sont ajoutées
mon graphique est le reflet de ces données MAIS je voudrais parvenir à ne prendre en compte que les 6 dernières semaines

Est-ce que je peux le faire sur le TCD ou le Graphique directement ou bien je dois faire un code VBA pour faire cette manip de filtre (Dans l'exemple de mon fichier joint, j'ai 9 semaines, je dois donc décocher les semaines 1, 2 et 3 pour ne laisser que les semaines 4, 5, 6, 7, 8 et 9.

Encore merci :)
 

Pièces jointes

  • Classeur1.xlsm
    23.5 KB · Affichages: 4
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Avec 365 vous pouvez faire vos graphiques et/ou TCD à partir d'une requête PowerQuery, (Données/a partir d'un tableau ou d'une plage).
Une fois votre requête faite, vous pouvez la choisir comme source de données pour un graphique ou un tcd

1603714410493.png


Apprenons à travailler avec avec les outils existants.

Cordialement

P.S. n'oubliez pas de remercier également @goube qui vous a répondu. Sans doute n'avez-vous pas vu sa réponse.
 

Pièces jointes

  • PivotTables.xlsm
    35.9 KB · Affichages: 3

olivier777

XLDnaute Nouveau
Rebonjour
pour commencer effectivement je n'avais pas vu le message de @goube
C'est maintenant corrigé dans mon message. Désolé et merci goube :)
Roblochon, merci pour ton retour rapide
effectivement il doit y avoir des possibilités plus efficaces avec les requêtes Query
Malheureusement je ne sais pas comment les créer :(
Du coup j'utilise d'autres outils existants (Formules Excel et Macro VBA)
J'aimerai bien apprendre cela me faciliterai probablement le travail ;)
 

olivier777

XLDnaute Nouveau
Merci @Roblochon pour toutes ces info et cette rapidité de réponses :)
J'ai regardé un peu et j'essaye de comprendre, ça à l'air génial
du coup j'ai une autre question : je n'avais pas pensé aux années
si j'ai des données sur plusieurs années (donc la dernière à moins de valeurs), si je veux pouvoir filtrer par année par exemple, et afficher les 6 dernières valeurs de l'année sélectionnée comment faire ?
Car si j'ai bien compris, la il y a la dernière valeur de semaine - 5, mais toutes années confondues ;)
Merci :)
 

Pièces jointes

  • PivotTables.xlsm
    29.7 KB · Affichages: 2
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

si je veux pouvoir filtrer par année et afficher les 6 dernières valeurs comment faire ?

6 dernières valeurs, 6 dernières années, 6 dernières semaines, je crois qu'il faut mettre de l'ordre dans vos plans arf....:)

Que voulez-vous exactement. LA est la question ! Qu'est-ce qui est pertinent ?

Dans le fichier joint vous trouverez un tableau alimenté par une requête qui vous donne les 6 dernières valeurs de chaque année.

Cordialement
 

Pièces jointes

  • PivotTables (1).xlsm
    31.4 KB · Affichages: 4

olivier777

XLDnaute Nouveau
Je suis désolé pour ne pas être précis :(
c'est parce que grâce à vos conseils et votre manière de m'éclairer sur ce sujet je me pose des questions pour essayer de mieux comprendre et mettre en pratique vos enseignements

Pour cela que j'ai rajouté des années dans ce cas, mais cela pourrait être d'autres filtres, comme ce que l'on peut mettre dans les filtres de rapport dans un TCD / GCD

La, dans mon cas effectivement j'ai plusieurs années, découpées en numéros de semaines
je veux limiter la taille de mon graphique à x valeurs pour qu'il ne soit pas trop grand (dans notre cas 6)
je sélectionne donc une année et mon graphique se met à jour en affichant les 6 dernières semaines de l'année sélectionnée

si je sélectionne 2020 mon graphique devrait se construire avec les semaine de 4 à 9
si je sélectionne 2019 mon graphique devrait se construire avec les semaines de 20 à 25

encore une fois je suis navré pour mes imprécisions dans mes demandes
 

Pièces jointes

  • PivotTables.xlsm
    29.7 KB · Affichages: 4

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Eh bien je vois que vous n'avez pas bien 'profiter' de power query' puisque dans votre dernier fichier il n'y a rien. Pas même une tentative.

Alors pour moi, ce sera ma dernière proposition.

Dans le fichier PivotTables (3) vous trouverez une requête qui vous sort les lignes des 6 dernières semaines de chaque année dans un tableau, un TCD tiré de ce dernier ainsi qu'un graphique. Les segments type et année servent de filtre au tdc et graphique.

Dans le fichier PivotsTables vous trouverez une façon de le faire en rajoutant une colonne à vos données avec une formule vous indiquant si la ligne fait partie des dernières 6 semaines ou non.
Vous avec également un TCD avec un segment sur cette colonne et sur l'année pour filtrer et le tcd et le graphique.

Bonne journée
 

Pièces jointes

  • PivotTables (3).xlsm
    44.1 KB · Affichages: 6
  • PivotTables.xlsm
    41.4 KB · Affichages: 4
Dernière édition:

olivier777

XLDnaute Nouveau
Bonjour @Roblochon
Merci pour ce retour

Je vais essayer d'aller plus loin dans la compréhension afin de pourvoir compléter et enrichir la requête si j'y parviens

Une question encore :
si ma base de données évolue avec des nouvelles colonnes, dans les requêtes, il faut les ajouter ?
Exemple
dans la ligne #"Années développé" il y a {"Semaine", "type", "nombre"}
si ma source contenait 10 colonnes il faudrait les rajouter ? du style {"Semaine", "type", "nombre","Colonne 4", "Colonne 5",....,"Colonne 10"} ?
Si oui cela doit se faire manuellement ou c'est automatique, en fonction du tableau source ?
Merci
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Double-cliquez sur l'étape "Années développé" et voyez ce qui se passe. Vous aurez la possibilité de choisir (cocher) les colonnes que vous voudrez voir.
Habituez-vous à utiliser l'outil.

Vous ne dites rien à propos du deuxième fichier (PivotTables.xlsm) de mon poste précédent, qui lui n'utilise pas powerquery mais une colonne supplémentaire au tableau de données.

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
314 659
Messages
2 111 624
Membres
111 237
dernier inscrit
vinthi