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 :

Appliquer le même filtre "Année" à tout les TCD (olap)


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : novembre 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Appliquer le même filtre "Année" à tout les TCD (olap)
    Bonjour,

    J'ai enregistré cette macro qui applique un filtre mois/année sur le tcd1, mon classeur contient plusieurs TCD sur plusieurs feuilles et j'aimerais que cette macro mette à jour tout les TCD de mon classeur.

    Merci d'avance.


    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Sub Macro3()
    '
    ' Macro3 Macro
    '
     
    '
    Dim rng As Range
        Set rng = Application.Range("paramdate")
        Set rng2 = Application.Range("paramdate2")
        Set rng3 = Application.Range("paramdate3")
     
     
    Dim Field As PivotField
        Dim sheet As Worksheet
            On Error Resume Next
    For Each sheet In Application.ActiveWorkbook.Worksheets
      Field.ClearAllFilters
                Set Field = sheet.PivotTables("tcd1").PivotFields( _
            "[Date Observation].[Calendrier].[Annee]").VisibleItemsList = Array("")
        sheet.PivotTables("tcd1").PivotFields( _
            "[Date Observation].[Calendrier].[Mois]").VisibleItemsList = Array("", _
            "[Date Observation].[Calendrier].[Mois].&[" & rng2 & "]", _
            "[Date Observation].[Calendrier].[Mois].&[" & rng & "]", _
            "[Date Observation].[Calendrier].[Mois].&[" & rng3 & "]")
     
     
    Ex:
        Next
            pt.ManualUpdate = False
        Application.EnableEvents = True
        Application.ScreenUpdating = True
        MsgBox ("Traitement terminé")
    End Sub

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Je n'ai pas compris ta question... Tu souhaites seulement appliquer ta macro aux autres TCD ?
    Change seulement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Field = sheet.PivotTables("tcd2").PivotFields("[Date Observation].[Calendrier].[Annee]").VisibleItemsList = Array("")
    sheet.PivotTables("tcd2").PivotFields( "[Date Observation].[Calendrier].[Mois]").VisibleItemsList = Array("", "[Date Observation].[Calendrier].[Mois].&[" & rng2 & "]", "[Date Observation].[Calendrier].[Mois].&[" & rng & "]", "[Date Observation].[Calendrier].[Mois].&[" & rng3 & "]")
    Tu boucles sur tous tes tableaux. Enfin... si j'ai bien compris.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 1 to .PivotTables.count
         Set Field = sheet.PivotTables("tcd" & i).PivotFields("[Date Observation].[Calendrier].[Annee]").VisibleItemsList = Array("")
         sheet.PivotTables("tcd" & i).PivotFields( "[Date Observation].[Calendrier].[Mois]").VisibleItemsList = Array("", "[Date Observation].[Calendrier].[Mois].&[" & rng2 & "]", "[Date Observation].[Calendrier].[Mois].&[" & rng & "]", "[Date Observation].[Calendrier].[Mois].&[" & rng3 & "]")
    Next i
    s'ils s'appellent tous "tcd1" puis "tcd2", etc...
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : novembre 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Trop fort Kimy_Ire! t'as tout compris! merci beaucoup!

  4. #4
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

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

Discussions similaires

  1. [infomaps] [WRS]/[infomaps] Filtre sous WRS avec toutes les valeurs
    Par charliesis dans le forum Outils BI
    Réponses: 1
    Dernier message: 31/05/2012, 15h32
  2. Appliquer le même filtre "Année" à tout les TCD (olap)
    Par Olivm dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/05/2011, 15h53

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