Mise à jour automatique de tableaux croisés

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
Configuration: Windows XP
Firefox 2.0.0.16

10 réponses

  1. Modérateur
    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
    1. 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
      1. Modérateur
        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
        1. ok merci
          encore une petite question
          comment faire si j'ai plusieurs TCD dans la meme feuille?
          0
          1. Modérateur
            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
            1. 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
              1. Modérateur
                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
                1. C'est bon ca fonctionne
                  merci beaucoup
                  0
                  1. 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
                    1. Bonjour,
                      Comment Transformer sa base en liste? je ne comprends pas le ctrl *

                      merci
                      0