TCD - Actualiser un TCD
Catégorie : Tableaux Croisés Dyn.
Publié par Mth le 16-04-2011

 

Si l'on modifie une donnée dans la source des données d'un tableau croisé dynamique, le TCD ne se met pas à jour spontanément, il faut "Actualiser les données" pour qu'il tienne compte de ce changement.


Par exemple, nous avons créé un TCD attaché à une base comme ci-dessous:
 



Actualiser un TCD : Base et TCD de départ
Modifions les chiffres de la première ligne et retournons sur le TCD: il ne s'est rien passé, le TCD n'a pas changé:

 

Actualiser un TCD : Base et TCD avant actualisation
Afin que le tableau croisé dynamique tienne compte de ces nouvelles données, il faut l'actualiser.
En sélectionnant le tableau, vous pouvez utiliser la combinaison de touche ALT  F5, ou par clic droit de la souris afficher le menu contextuel et choisir "Actualiser":

 

Tableau Croisé Dynamique: Menu Actualiser 
ou encore dans le menu "Options" / Données cliquer sur Actualiser:

 

Tableau Croisé Dynamique: Menu Actualiser 
Si vous avez plusieurs tableaux croisés dynamiques dans votre fichier, vous pouvez cliquer sur le bouton "Actualiser tout". Ceci permet d'actualiser d'un seul coup tous les TCD quels que soient les onglets dans lesquels ils se trouvent:

 

Tableau Croisé Dynamique: Menu Actualiser Tout

Remarque:  la commande "Actualiser tout"  actualise également les données provenant de connexions à d'autres sources externes s'il y en a dans votre fichier (connexion à une base de données, un fichier texte, etc. )

 

Après actualisation, le TCD a bien intégré les nouvelles données:

Tableau Croisé Dynamique: Actualiser

Vous pouvez automatiser cette actualisation:

Point bleu    A l'ouverture du fichier: 
 
 

Dans les Options du TCD, sélectionnez l'onglet Données sur la droite, puis cochez la case "Actualiser les données à l'ouverture du fichier":

 

Actualiser un Tableau croisé dynamique à l'ouverture


 
Point bleu  Grâce à VBA, par exemple ici à l'activation de la feuille:
 
Pour actualiser le TCD nommé "Tableau croisé dynamique1: 

Private Sub Worksheet_Activate()
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
End Sub


Pour actualiser tout :

Private Sub Worksheet_Activate()
ActiveWorkbook.RefreshAll
End Sub

 

Ce code est alors à placer dans le code de la feuille comme ci-dessous:

Code VBA Actualiser un TCD


 
Icone Information Information:

Lors d'une actualisation, vous pouvez rencontrer les fenêtre d'alerte suivantes:

Actualiser un TCD : Fenêtre d'alerte

 

Ceci se produit lorsque vous avez des données sur la droite ou en dessous de votre TCD. Après actualisation il comporte plus de lignes ou de colonnes il ne peut s'afficher en entier sans écraser les données présentes sur votre feuille.

Si vous répondez oui, le TCD s'actualise, s'affiche bien en entier mais écrase le contenu des cellules, si vous répondez non, les cellules sont conservées, le TCD s'actualise mais ne s'affichent que les lignes ou les colonnes pour lesquelles la plage d'affichage est disponible, il manque donc des lignes ou des colonnes à l'affichage.

 

Actualiser un TCD : Fenêtre Impossible d'afficher le rapport croisé dynamique sur un rapport existant


Cette fenêtre s'affiche lorsque en s'actualisant un TCD est bloqué par la présence d'un autre TCD et ne peut l'effacer.


Pour éviter ces situations pensez bien à laisser de la place à droite et en dessous de vos TCD.
 
 
Logo Astuce

Pour vérifier que le total de votre TCD est bien actualisé et identique au total de votre base, vous pouvez utiliser la fonction LIREDONNEESTABCROISDYNAMIQUE().


Par exemple, le champs CA An-1 de notre base se trouve en colonne  J de l'onglet Base, ce champ est intégré au TCD qui est fixé en cellule A3.

Vous pouvez donc inscrire à titre de contrôle au dessus du TCD ces deux formules:

=SOMME(Base!J:J)

qui donne le total du champs dans la Base

=LIREDONNEESTABCROISDYNAMIQUE(" CA An-1";$A$3)

qui indique le total du TCD.

 

Si les chiffres sont différents il y a erreur et vous le voyez tout de suite:
TCD: contrôle des données avec LIREDONNEESTABCROISDYNAMIQUE()
 
Trait bleu
 
Une question ? N'hésitez pas à la poser sur les forums XLpages
Pour toutes vos questions ou si vous rencontrez des difficultés, n'hésitez pas à rejoindre nos Forums de Discussions !