TCD - Actualiser un TCD
Par exemple, nous avons créé un TCD attaché à une base comme ci-dessous:
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:
Vous pouvez automatiser cette actualisation:
A l'ouverture du fichier:
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:
Information:
Lors d'une actualisation, vous pouvez rencontrer les fenêtre d'alerte suivantes:
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.
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.
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.