IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

TCD mis à jour sur plusieurs feuilles à partir d'un filtre


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 27
    Points : 15
    Points
    15
    Par défaut TCD mis à jour sur plusieurs feuilles à partir d'un filtre
    Bonjour,

    Alors voila, tout d'abord je voulais préciser que je débute avec VBA et j'apprends grace aux posts du forum..

    J'ai un fichier Excel avec plusieurs feuilles contenant des tableaux croisés dynamiques (plusieurs par feuilles) similaires mais sur des populations différentes.

    Pour chacune de ces feuilles j'ai réussi à créer un filtre mettant à jour les tableaux croisés dynamiques (de cette feuille), mais je voudrais que ce filtre mette à jour l'ensemble du fichier Excel.

    J'espère être claire et que ce soit possible,
    Si vous avez une idée.. Je suis preneuse!

    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Essayez ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub MettreAJourTousLesTcd()
     
        Dim Pvt As PivotTable
        Dim Sh As Worksheet
        Dim I As Long
     
        For Each Sh In Sheets
     
            Sh.Activate
            If Sh.PivotTables.Count > 0 Then
                For I = 1 To ActiveSheet.PivotTables.Count
     
                   Set Pvt = ActiveSheet.PivotTables(I)
                   Pvt.PivotCache.Refresh
                   MsgBox (Sh.Name & Chr(10) & ActiveSheet.PivotTables.Count & Chr(10) & Pvt.Name & " numéro : " & I) '(Pour vérifier)
     
                   Set Pvt = Nothing
                Next I
            End If
        Next Sh
     
    End Sub
    Cordialement.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Serait-il possible de m'expliquer les actions de ce code?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Le programme balaye toutes les feuilles (Sheets.count). Une fois positionné sur une feuille, on compte le nombre de TCD associé à la feuille (ActiveSheet.Pivottables.count).

    Pour chaque TCD trouvé, on le rafraîchit. Pour cela on est obligé de créer une variable de type Pivottable (Pvt) qui pourra lire dans la collection Pivottables de la feuille. On supprime la variable au fur et à mesure pour ne pas saturer la mémoire.

    Question : Avez-vous testé ?

    Cordialement.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    désolée du retard...

    Je m'y remet.
    Merci pour cette explication cela me permet de mieux comprendre ce langage totalement inconnu encore.

    J'ai testé mais j'ai créé un filtre avec une liste déroulante et je voulais que les tcd se mettent à jour en fonction de la modalité choisie. Or là je ne vois pas trop comment modifier votre code.

    Merci de votre aide,

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/01/2015, 20h43
  2. [XL-2000] Dupliquer un TCD sur plusieurs feuille
    Par crissud dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/01/2011, 22h17
  3. [XL-2003] Tri dans un TCD sur plusieurs feuilles Excel
    Par srede dans le forum Conception
    Réponses: 0
    Dernier message: 01/12/2010, 11h18
  4. [XL-2003] TCD sur plusieurs feuilles
    Par Eric26 dans le forum Excel
    Réponses: 4
    Dernier message: 10/06/2010, 15h33
  5. [excel] même code sur plusieurs feuilles
    Par sabotage dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/11/2005, 12h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo