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

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
 
D

Dan

Guest
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
 
A

Abdoul

Guest
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
 
J

juliette

Guest
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
 
D

Dan

Guest
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
 

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet