Mise à jour automatique de tableaux croisés [Fermé]

Signaler
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
-
 tite218 -
Bonjour,
J'ai mis en place une dizaine de TDC sur la meme feuille
maintenant, je rajoute des lignes dans la feuille des données sources
je voudrais mettre à jour mes TDC sans avoir à chaque fois besoin de changer la plage de données source
et sans avoir besoin de faire clique droit mettre à jour
y'a t'il une solution
MERci

10 réponses

Messages postés
16369
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
8 août 2020
9 608
Bonjour,

Le mieux est déjà d'utiliser une plage nommée pour tes TCD et non pas des références en dur.

Ensuiite, il faut que le nom puisse évoluer avec la plage nommée. Pour cela deux solutions :

- Nommer la plage avec une formule DECALER
- Transformer ta base en liste (Données, Liste, Créer une liste) (Merci Eriic ! ;))

La deuxième solution est sans doute la plus simple.

Cependant, cela ne suffira pas. Il te faut quand même une macro qui mette à jour. Dans la feuille du tcd :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveSheet.PivotTables("Tableau croisé dynamiquex").PivotCache.Refresh

End Sub
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
Et une fois que j'ai créé ma liste
j'en fais quoi?
je dois mettre quoi dans les données sources de mon TCD?
je dois mettre quoi à la place "Tableau croisé dynamiquex" dans la macro?

Merci merci
Messages postés
16369
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
8 août 2020
9 608
Pour créer ta liste, je pense que tu as sélectionné toute ta base (ctrl+*)
Tu resélectionnes, et tu nommes ta plage ("bd" par exemple)
Ce qui fait qu'à chaque fois que tu ajouteras un ligne, la plage nommée "bd" s'agrandira.

Dans ton TCD :
- Menu Tableau croisé => Assistant Tableau croisé
Dans la boîte de dialogue de l'assistant, clique sur le bouton Précédent
Et tu tapes le nom "bd" dans la zone plage (sans les quillemets).

Ensuite, tu copies-colles la macro dans l'éditeur VB de chaque page TCD, en mettant bien le nom du tableau croisé Pour connaître le nom :
Menu Tableau croisé => Options

m@rina
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
ok merci
encore une petite question
comment faire si j'ai plusieurs TCD dans la meme feuille?
Messages postés
16369
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
8 août 2020
9 608
Tu ajoutes la mise à jour du 2e TCD (et des autres...) dans la macro :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    WithActiveSheet
         .PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
         .PivotTables("Tableau croisé dynamique2").PivotCache.Refresh
   End With

End Sub
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
et aussi ca fonctionne, là je l'ai fait pour un mais ca ne le fait pas automatiquement
il faut qd mm que je fasse actualiser mon tableau
c'est pas possible de le faire automatiquement?
Messages postés
16369
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
8 août 2020
9 608
La macro est justement faite pour que tu n'aies pas à actualiser manuellement.

As tu bien mis la macro dans la feuille du TCD et non pas dans un module ?

m@rina
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
C'est bon ca fonctionne
merci beaucoup
Bonjour

Il faut que tu crées une petite macro qui te met à jour tous les TCD.
Tu crées ensuite un petit bouton relié à la macro et ensuite d'un seul clic sur le bouton(macro) tous les TCD seront actualisés.
Bon, il faut savoir créer des macros mais ce n'est pas difficile :-)
Bonne chance !
Bonjour,
Comment Transformer sa base en liste? je ne comprends pas le ctrl *

merci