Mise à jour onglet

Bonjour à tous,

Je cherche de puis un petit moment maintenant sans trouver de réponse à mon problème.

J'ai un fichier Excel qui comporte plusieurs onglets :

Onglet 1 : Il contient toutes les données et c'est lui que je mets à jour

Onglet 3, 4, 5 et 6 : chacun contient un tableau croisé dynamique basé sur des données de l'onglet 1 avec un graphe basé sur les données du tableau croisé dynamique.

Mon but est comme l'onglet bouge très souvent (plusieurs fois dans une même journée) je voudrais que tous les tableaux croisés dynamique des onglets 3 à 6 se mettent jour lorsque l'ont clique dessus.

A date j'ai réussi à mettre à jour tous les onglets mais il faut que je ferme puis ouvre de nouveau le fichier.

J'ai même en onglet 2 (oui il existe ) fait un tableau non dynamique où j'ai un graphique qui se base sur les données du tableau non dynamique où les dites données se mettent à jour automatiquement via la formule excel (=SOMMEPROD(('Liste projets'!$S$2:$S$1048576>="01/04/2019"*1)*('Liste projets'!$S$2:$S$1048576<="30/04/2019"*1)))

Mais je ne veux pas faire cela pour chaque onglet car trop lourd à gérer.

Je mis donc qu'il doit bien exister un code vba qui puisse répondre à ma demande.

D'avance merci à tous

Bonjour pnowak,

Pour un TCD, à mettre dans la feuille contenant le TCD

Private Sub Worksheet_Activate()

ActiveSheet.PivotTables("nom du TCD").PivotCache.Refresh

End Sub

Pour tous les TCD du classeur, à mettre dans un module et à activer avec un bouton

Sub actualise_tcd()

ActiveWorkbook.RefreshAll

End sub

Cordialement.

Bonjour Zebulon,

Merci de ton retour.

Le code que j'ai mis :

Private Sub Worksheet_Activate()

ActiveSheet.PivotTables(ROI).PivotCache.Refresh

End Sub

Mais cela génére une erreur ?? "ROI" est le nom de mon TCD dans l'onglet qui se nomme "Suivi ROI"

Pourquoi j'ai une erreur ?

Quand j'écris comme cela le code :

Private Sub Worksheet_Activate()

ActiveSheet.PivotTables("ROI").PivotCache.Refresh

End Sub

Et bien plus d'erreur mais aucune mise à jour

Bon en regardant sur le Web et en bidouillant le code suivant fonctionne mais pourquoi ??

Sub Worksheet_Activate()

Dim pt As PivotTable

Set pt = ActiveSheet.PivotTables("ROI")

pt.RefreshTable

End Sub

re,

Pourquoi, je ne saurai te le dire. Si cela marche tant mieux.

La syntaxe : ActiveSheet.PivotTables("ROI").PivotCache.Refresh est la bonne dans la mesure où ton TCD se nomme bien ROI.

Cordialement.

Rechercher des sujets similaires à "mise jour onglet"