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 :

Mise à jour de TCD sur plusieurs feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyste contrôle de gestion
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyste contrôle de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Mise à jour de TCD sur plusieurs feuilles
    Bonjour,

    Je suis débutant en codage VBA et je cherche à rafraîchir plusieurs TCD sur différentes feuilles d'un même classeur.

    En sommes, je voudrais que chaque mois après la mise à jour des bases de données, les TCD affichent le mois suivant avec le chiffre correspondant de manière auto.

    J'espère avoir été clair,

    Merci d'avance pour votre contribution,

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 511
    Points : 16 437
    Points
    16 437
    Par défaut
    Bonjour

    Tes TCD sont liés à la même source ?

    Tu peux ajouter une colonne à la source avec une formule pour obtenir 0 ou 1 selon que la ligne est ou non concerné.
    Ce champ placé en champ de filtre et filtré sur 1, rendra le filtre automatique mois après mois.

    Sinon le plus simple est de prévoir un segment connectés à tous les TCD : filtrer ce segment manuellement ou par VBA sera très simple.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Analyste contrôle de gestion
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyste contrôle de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour Chris,

    Les TCD interrogent différents cubes de données.

    Quel est le principe du segment ?

    Merci d'avance,

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 511
    Points : 16 437
    Points
    16 437
    Par défaut
    Bonjour

    Si tu as plusieurs cubes sources tu ne peux utiliser un segment commun.

    Donc soit la colonne ajoutée à chaque source, soit une synchro des TCD par VBA.

    Tu as une date ou bien un mois clairement indiqué dans tes sources ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Analyste contrôle de gestion
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyste contrôle de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Oui il y a bien des dates clairement définies dans mes sources.

    Merci,

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 511
    Points : 16 437
    Points
    16 437
    Par défaut
    Bonjour

    Si ton champs date est dans le TCD et dans un champ autre que page : filtre chronologqiue à adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Filtrer()
    '
    Mois = 6
    Debut = CDate("1/" & Mois & "/" & Year(Date))
    Fin = DateAdd("d", -1, CDate("1/" & Mois + 1 & "/" & Year(Date)))
        For Each feuille In ActiveWorkbook.Worksheets
            For Each TCD In feuille.PivotTables
                TCD.PivotFields("Date").ClearAllFilters
                TCD.PivotFields("Date").PivotFilters.Add Type:=xlDateBetween, Value1:=Format(Debut, "dd/mm/yyyy"), Value2:=Format(Fin, "dd/mm/yyyy")
            Next TCD
        Next feuille
    End Sub

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Analyste contrôle de gestion
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyste contrôle de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Chris,

    Merci pour votre réponse.

    Toutefois, une erreur d’exécution "1004" : "Impossible de lire la propriété PivotFields de la classe PivotTable."

    Merci,

  8. #8
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 511
    Points : 16 437
    Points
    16 437
    Par défaut
    RE

    as-tu adapté le code à tes noms de champ ?

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Analyste contrôle de gestion
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyste contrôle de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Re,

    Quels champs dois-je indiquer et où, dans le code?

    Merci de ton aide,

  10. #10
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 511
    Points : 16 437
    Points
    16 437
    Par défaut
    Re

    Un minimum d'effort... PivotFields est un champ et ce qui suit est son nom...

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Analyste contrôle de gestion
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyste contrôle de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    J'ai essayé de modifier les champs avant de t'écrire mais sans succès. La ligne se met en surbrillance jaune alors que je mets bien 'périodes" j'ai essayé " years" le deuxième niveau également mais rien.

  12. #12
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 511
    Points : 16 437
    Points
    16 437
    Par défaut
    Re

    Utilise l'enregistreur macro, filtre ton champ et constates le code obtenu.

    Est-ce bien un champ de ligne ou colonne (j'ai bien précisé "dans un champ autre que page")

    Tu as des regroupements si je comprends bien.

    Poste une image du 1er TCD de la première feuille...

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Analyste contrôle de gestion
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyste contrôle de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Nom : TCD.png
Affichages : 488
Taille : 10,5 Ko

    Voici le fichier!

    Tous les mois je vais dans période et je coche une date supplémentaire qui me fait apparaître un nouveau chiffre dans la colonne total.

    Ce champs "périodes" est en ligne.

    Merci!

  14. #14
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 511
    Points : 16 437
    Points
    16 437
    Par défaut
    Bonjour

    Et si tu mets l'enregistreur macro quand tu filtres ou dé-filtres un mois quel nom du champ obtiens-tu ?

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Analyste contrôle de gestion
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyste contrôle de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Re,

    Voici ce que j'obtiens 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
    13
    14
    15
    16
    17
    18
    19
    Sub Macro3()
    '
    ' Macro3 Macro
    '
     
    '
        ActiveSheet.PivotTables("Tableau croisé dynamique3").CubeFields(3). _
            TreeviewControl.Drilled = Array(Array("[Period].&[11080]"), Array( _
            "[Period].&[2017]"))
        ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields( _
            "[Period].[Years]").HiddenItemsList = Array("")
        ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields( _
            "[Period].[Years 01]").HiddenItemsList = Array("[Period].&[2014]", _
            "[Period].&[2015]", "[Period].&[2016]", "[Period].&[2018]", "[Period].&[2019]", _
            "[Period].&[2020]", "[Period].&[2021]", "[Period].&[2022]", "[Period].&[2023]")
        ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields( _
            "[Period].[Years 02]").HiddenItemsList = Array("[Period].&[20171001]", _
            "[Period].&[20171201]")
    End Sub
    Merci de ton aide,

  16. #16
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 511
    Points : 16 437
    Points
    16 437
    Par défaut
    Re

    Ta source est un cube : syntaxe totalement différente !

    Outre les hiérarchies de date, il semble qu'il enregistre ce qu'on masque et non ce qu'on sélectionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .PivotFields("[Period].[Years 02]").HiddenItemsList = Array("[Period].&[20171001]", "[Period].&[20171201]")
    semble indiquer une désélection des du 1er oct au 1er déc.

    As-tu des filtres chronologiques ou bien seulement des cases à cocher ?

    Je n'ai pas de cube pour tester donc je peux difficilement t'aider...

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Analyste contrôle de gestion
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyste contrôle de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Chris,

    Autant pour moi, je ne t'avais pas précisé que les données provenaient de cubes.

    Je ne fais que cocher/décocher des cases.

    Merci,

Discussions similaires

  1. [XL-2007] mise en forme conditionnelle sur plusieurs feuilles
    Par electrons dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/01/2014, 10h40
  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. Réponses: 2
    Dernier message: 23/06/2010, 13h35
  5. [XL-2003] TCD sur plusieurs feuilles
    Par Eric26 dans le forum Excel
    Réponses: 4
    Dernier message: 10/06/2010, 15h33

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