Mise à jour automatique de tableaux croisés

nanou2183 Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   -  
 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
A voir également:

10 réponses

m@rina Messages postés 23923 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
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
0
nanou2183 Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   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
0
m@rina Messages postés 23923 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
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
0
nanou2183 Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   11
 
ok merci
encore une petite question
comment faire si j'ai plusieurs TCD dans la meme feuille?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
m@rina Messages postés 23923 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
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
0
nanou2183 Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   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?
0
m@rina Messages postés 23923 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
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
0
nanou2183 Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   11
 
C'est bon ca fonctionne
merci beaucoup
0
Cindirella
 
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 !
0
tite218
 
Bonjour,
Comment Transformer sa base en liste? je ne comprends pas le ctrl *

merci
0