Tab croisé Dyn: màj automatique de la source

  • Initiateur de la discussion Initiateur de la discussion Abdoul
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Abdoul

Guest
Bonjour,

J'ai Excel XP. J'ai créé un TCD à partir d'une source située dans le même classeur mais sur une feuille à part.
Ensuite par VBA je mets à jour complètement les données de la feuille source (en allant cherchant des nouvelles données dans un autre classeur, le mappage des champs y étant identique.)

Puis par l'instruction suivante je mets à jour mon TCD

Sheets("Ma_Feuille").Select
ActiveSheet.PivotTables("Mon_Tab_Croisé_Dyn").PivotCache.Refresh

et là mystère, mon TCD est màj mais avec les données précédentes (qui n'existent plus sur mon classeur). !!!!

Si qq'un a une solution, merci d'avance !

Abdoul
 
Bonsoir,

Vérifie ceci :

1. Si la donnée source englobe la même plage de ta feuille
2. si ton instruction "ActiveSheet.PivotTables("Mon_Tab_Croisé_Dyn").PivotCache.Refresh" ne devrait pas être remplacée par "ActiveSheet.PivotTables("Mon_Tab_Croisé_Dyn").RefreshTable"

Si cela n'est pas solutionné, je te suggère de refaire le Tcd avant de continuer.

@+

Dan
 
Salut Dan,

Merci bcp pour ta réponse. En effet ça marche mieux avec l'instruction ".RefreshTable" plutôt que ".PivotCache.Refresh".

D'ailleurs savez-vous par hazard pq quand on enregistre la macro en mode auto, c'est cette 2ème expression qui est générée dans le code plutôt que la première ? A quoi ça sert de "Rafraichir" la mémoire cache du Pivot ?

Un début de réponse possible :
le pivot est utilisé quand on se sert d'une même source de données pour créer plusieurs TCD. Dans ce cas on actualise une fois le pivot cache pour mettre à jour tous les TCD liés à cette source de données.

Très amicalement,
Abdoul
 
Bonjour Abdoul et Dan...

j'aurai une petite question...

lorsqu'on copie-colle des données d'un classeur A vers un classeur B, qu'ensuite on supprime des colonnes dans la feuille source du classeur B... comment se fait-il que me plage de source se modifie et mes TCD s'actualisent donc mal?

C'est ce que Dan à noter dans son message :

"Vérifie ceci :

1. Si la donnée source englobe la même plage de ta feuille..."


Comment puis-je faire pour que la source de mes TCD ne se modifie pas lorsque je fais des manipulations?

merci d'avance.

Juliette
 
Bonsoir Abdoul, Juliette,

1. Réponse à Abdoul :
- L'instruction Pivotcache est utilisée pour le cache du TCD. Il s'agit de la mémoire utilisée par le TCD. L'aide dans VBA donne quelques indications à ce sujet.

2. Réponse à Juliette :
Je suppose que tu as aussi recopié les TCD du classeur A dans le classeur B. Dans ce cas si les données sources que tu as copiées du classeur A vers le classeur B sont modifiées (suppression de colonnes), tu devras refaire les TCD dans le classeur B. En effet, le TCD conserve les données qui ont servi à le constituer et ne tient donc pas compte de suppression des champs (colonnes dans la source de données) faits à postériori. C'est pourquoi, comme je l'ai dit dans de précédents posts, il est important de bien savoir ce que tu souhaites faire et surtout de connaitre ce que tu veux voir comme résultats avec un TCD.
Cela fait le TCD est un puissant outil d'exploitation de résultats d'Excel.

Espérant avoir répondu à vos questions

@+

Dan
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour