Actualisation des TCD sous Excel 2013

michir

XLDnaute Occasionnel
Bonjour,
J'avais cru comprendre que les TCD s'actualisaient automatiquement sous Excel 2013. Je constate que ce n'est pas le cas.
Je dois utiliser la commande "Actualiser" pour forcer l'actualisation.
Auriez vous une explication ?
Merci à tous
Michel
 

chris

XLDnaute Barbatruc
Re : Actualisation des TCD sous Excel 2013

Bonjour

Cela signifie simplement qu'un TCD basé sur une source de type Tableau (au sens 2007-2013) tiendra toujours compte du nombre de lignes de la source contrairement à une source de type plage.

Cela évite notamment les plage nommées à base de fonction DECALER utilisées jusqu'à la version 2002 pour compenser ce problème de source évolutive...
 

Misange

XLDnaute Barbatruc
Re : Actualisation des TCD sous Excel 2013

Bonjour
Les tableaux utilisés comme source d'un TCD ou d'un graphique présentent l'énorme intéret que lorsque des données sont ajoutées au tableau, elles sont automatiquement intégrées à la source de données. Mais cela ne dispense pas pour les YCD de faire actualiser.
traduisons :
Si tu utilises une plage "classique" disons A1:G300 et non un tableau comme source de données, si tu ajoutes des valeurs à cette table (par exemple une ligne 301), excel ne sait pas si il faut ou pas les prendre en compte comme source de données. Si tu modifies la ligne 290 et que tu fais actualiser, les nouvelles valeurs apparaitront dans le TCD mais la ligne 301 n'y apparaitra que si tu as dit à excel que la source de ton TCD n'est plus A1:G300 mais A1:G301.
Si maintenant tu transformes cette plage A1:A300 en tableau, dès que tu écris quelque chose dans la plage A301:G301, une nouvelle ligne est créée dans le tableau et le TCD prend en compte cette nouvelle ligne.
On pouvait obtenir le même effet en définissant un nom avec la fonction decaler. MAis c'est plus long à faire et moins intuitif.
Plus sur les tableaux et les très nombreuses fonctionnalités qu'ils apportent à excel ici
Ce lien n'existe plus

Maintenant, si tu veux que ton TCD se mette en plus à jour automatiquement, tu peux ajouter une toute petite ligne de macro dans une procédure événementielle qui se déclenche par exemple lorsque tu actives la feuille contenant le TCD
Ce lien n'existe plus

Code:
Private Sub Worksheet_Activate()     PivotTables("Tableau croisé dynamique1").PivotCache.Refresh End Sub
(en supposant que ton TCD s'appelle bien Tableau croisé dynamique1
 

michir

XLDnaute Occasionnel
Re : Actualisation des TCD sous Excel 2013

Re bonjour à tous,

Suite à vos conseil, j'ai bien recopié la procédure suivante dans le code de la feuille "TCD":
Private Sub Worksheet_Activate()
PivotTables("TCD").PivotCache.Refresh
End Sub

mais lorsque j'active la feuille TCD j'ai une erreur d'exécution 1004 avec le message
la méthode "PivoTables" de l'objet "Worsheet" à échoué
Auriez vous une idée de la raison de ce message ?
Merci
 

chris

XLDnaute Barbatruc
Re : Actualisation des TCD sous Excel 2013

RE

Les TCD sont nommés par Excel : si on veut les manipuler par VBA, il est conseillé de les renommer.
Le nom apparait et est modifiable dans l'onglet TCD options, à gauche, ou aussi clic droit Options du TCD
 

MJ13

XLDnaute Barbatruc
Re : Actualisation des TCD sous Excel 2013

Re

Sinon, pour mettre à jour les TCDs de la feuille, ce code devrait fonctionner:

Code:
For i = 1 To Sheets(ActiveSheet.Name).PivotTables.Count
ActiveSheet.PivotTables(i).PivotCache.Refresh
Next
 

Discussions similaires

Réponses
5
Affichages
191

Statistiques des forums

Discussions
312 097
Messages
2 085 256
Membres
102 839
dernier inscrit
Tougtoug