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 :

[VBA] Actualisation de tableaux croisés dynamiques


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 104
    Points : 72
    Points
    72
    Par défaut [VBA] Actualisation de tableaux croisés dynamiques
    Bonjour,

    Je veux automatiser la génération de rapport à l'aide de macro en VBA.
    Le but à la fin est de récupérer une extraction qui aura toujours la même forme (nombre et nom de colonnes) mais un nombre de lignes et des valeurs différentes biensur. On colle cette extraction dans un classeur Excel ou il y a un feuille destinée à accueillir cette extraction, et une feuille avec des tableaux croisés dynamiques pour gérer les rapports.
    Les tableaux croisés dynamiques sont déjà fait, je voudrais juste que la macro viennent les réactualiser en fonction des nouvelles données et change le filtre en fonction de la date à laquelle on est.
    J'ai testé sur mon extraction en faisant le code, ca marchait bien. Le problème vient quand j'ai vidé la feuille extraction et que j'ai recollé une nouvelle extraction (qui était en fait la même, pour le moment les données sont identiques). J'obtiens alors un blocage accompagné du message suivant :

    erreur d'exécution '1004' :

    Le nom du champ de tableau croisé dynamique n'est pas valide. Pour créer un rapport de tableau croisé dynamique, vous devez utiliser des données sous forme de liste avec des étiquettes de colonnes. Si vous changez le nom d'un champ de tableau croisé dynamique, vous devez taper un nouveau nom pour le champ.


    Le code incriminé est le suivant :

    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
    Sheets("Rapports").Select
    ' Oter la protection de la feuille
    ActiveSheet.Unprotect
    ' Opérateur créateur
        ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotCache.Refresh
        ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Mois").CurrentPage = mois_b & "-" & annee
    ' Problèmes
        ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotCache.Refresh
        ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Mois").CurrentPage = mois_b & "-" & annee
    ' Groupe de traitement
        ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotCache.Refresh
        ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("Mois").CurrentPage = mois_b & "-" & annee
        ActiveSheet.PivotTables("Tableau croisé dynamique5").PivotCache.Refresh
        ActiveSheet.PivotTables("Tableau croisé dynamique5").PivotFields("Mois").CurrentPage = mois_b & "-" & annee
    ' Temps de traitement
        ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotCache.Refresh
        ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields("Mois").CurrentPage = mois_b & "-" & annee
    ' Evolution
        ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotCache.Refresh
     
    ' Protection de la feuille
        ActiveSheet.Protect
    en espérant que quelqu'un puisse m'aider, c'est très important. Merci d'avance.

  2. #2
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 104
    Points : 72
    Points
    72
    Par défaut
    j'ai une piste. Il semblerait que ce soit du au fait que les effacement et ajout de données dans la feuille extraction fait changer la plage utilisée pour la création des tableaux croisés dynamiques. En effet si je fait un clique droit sur mon tableau croisé dynamique et que je prend l'assistant pour changer la plage utilisée, ensuite je peux à nouveau mettre à jour.
    Le problème c'est que j'aimerai automatisé cette action, que l'utilisateur ne soit pas obligé d'aller mettre à jour la plage utilisé à la main.
    Comment déclare-t-on en VBA la plage utilisée par un PivotTables?

    Merci d'avance.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 150
    Points : 100
    Points
    100
    Par défaut
    Salut,
    J'ai déjà rencontré ce genre de souci.

    Ce qu'il faut c'est lorsque tu changes l'extract c'est de ne surtout pas enlever la ligne de titres (les entetes).
    Deuxieme chose, tu ne dois pas définir le nombre de lignes cad lorsque la première fois que tu fais le TDC a la main ben tu dois selectionner ta source uniquement sur des colonnes entières.
    Cela marchera peu importe le nombre de lignes dans ton extract.

    J'espère que ca va t'aider.

  4. #4
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 104
    Points : 72
    Points
    72
    Par défaut
    Ah ok, effectivement j'enlevais les entêtes pour les remettre puisqu'elles sont dans l'extract.
    Je vais tester plusieurs fois cette méthode avant de venir passer le post en résolu.
    Merci encore pour ton aide précieuse.

Discussions similaires

  1. Problème de création multiple de tableaux croisés dynamiques en VBA
    Par Dark Christou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/04/2010, 15h58
  2. [XL-2003] Tableaux Croisés Dynamiques en vba
    Par mercatog dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/07/2009, 15h40
  3. [VBA-E]Automatisation de l'actualisation de tableaux croisés dynamiques
    Par Alqualonde dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/03/2007, 09h28
  4. Actualisation de tableaux croisés dynamiques
    Par anisr dans le forum Général VBA
    Réponses: 1
    Dernier message: 28/12/2006, 17h30
  5. [VBA-E]Tableaux croisés dynamiques
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/06/2006, 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