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

Excel Discussion :

Allègement code enregistreur macro [XL-2016]


Sujet :

Excel

  1. #1
    Membre éprouvé
    Inscrit en
    Décembre 2002
    Messages
    800
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 800
    Points : 1 259
    Points
    1 259
    Par défaut Allègement code enregistreur macro
    Bonsoir, j'ai le code suivant créé avec l'enregistreur de macro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        Range("B7").Select
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
        Range("B22").Select
        ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotCache.Refresh
        ActiveWindow.SmallScroll Down:=18
        Range("B38").Select
        ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotCache.Refresh
        ActiveWindow.SmallScroll Down:=15
        Range("B55").Select
        ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotCache.Refresh
        ActiveWindow.SmallScroll Down:=21
    J'ai des dizaines de TCD et graphiques répartis sur plusieurs sheets. J'aimerais donc créer une boucle qui parcourt tous ces objets et les rafraîchisse mais c'est hors de mes modestes compétences en la matière, qq'un peut m'aider ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Franc Voir le message
    Bonjour,

    Essayez :
    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
     
    Sub MettreAJourTousLesTcd()
     
    Dim Sh As Worksheet
    Dim I As Long
     
        For Each Sh In Sheets
            If Sh.PivotTables.Count > 0 Then
               For I = 1 To Sh.PivotTables.Count
                   Sh.PivotTables(I).PivotCache.Refresh
               Next I
            End If
        Next Sh
     
    End Sub

  3. #3
    Membre éprouvé
    Inscrit en
    Décembre 2002
    Messages
    800
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 800
    Points : 1 259
    Points
    1 259
    Par défaut
    Super! Ce petit bout de code fait parfaitement le job et remplace avantageusement des dizaines voire des centaines de lignes de code de l'enregistreur de macro. Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre le code des macros en gestion de configuration
    Par renuche31 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/05/2008, 09h47
  2. Réponses: 6
    Dernier message: 10/04/2008, 13h43
  3. Problème d'insertion de code par macro
    Par melouille56 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/01/2008, 20h31
  4. [OK] Erreur dans l'exécution d'un code de macro.
    Par Funcky222 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/09/2007, 21h35
  5. Code lancement macro
    Par cjacquel dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/09/2007, 15h37

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