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 :

Macro Tableau croisé dynamique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Par défaut Macro Tableau croisé dynamique
    Bonjour,
    Je suis actuellement en stage et j'aimerais mettre en place un tableau croisé dynamique automatiquement via une macro. Ne trouvant pas comment faire j'ai fait un enregistrement de macro mais dans le résultat une erreur s'affiche.
    Voici le code et l'erreur:

    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
    Sub TCD()
    '
    ' TCD Macro
    '
    
    '
        Sheets.Add
        ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
            "base_donnée!R1C1:R51C6").CreatePivotTable _
            TableDestination:="Feuil5!R3C1", TableName:="Tableau croisé dynamique3", _
            DefaultVersion:=xlPivotTableVersion10   
     Sheets("Feuil5").Select
        Cells(3, 1).Select
        With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("DGA")
            .Orientation = xlColumnField
            .Position = 1
        End With
        With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields( _
            "Regroupement")
            .Orientation = xlRowField
            .Position = 1
        End With
        ActiveSheet.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
            PivotTables("Tableau croisé dynamique3").PivotFields( _
            "SommeDeSommeDeTotal_de_jour_decompte"), _
            "Somme de SommeDeSommeDeTotal_de_jour_decompte", xlSum
        ActiveSheet.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
            PivotTables("Tableau croisé dynamique3").PivotFields( _
            "SommeDeCompteDeNom_absence"), "Somme de SommeDeCompteDeNom_absence", xlSum
    End Sub
    Erreur d'execution '5':
    Argument ou rappel de procédure incorrect
    Voila merci d'avance
    Coordialement
    Paul

  2. #2
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,
    Je pense que l'erreur provient du nom de la feuille Feuil5
    Lorsque la feuille est créée, il faut mieux récupérer son nom pour l'inclure dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sheets.Add after:=Sheets(Sheets.Count)  'créer la feuille à droite
    Sheets(Sheets.Count).Name = "Dernier"     'lui donner un nom
    
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "base_donnée!R1C1:R51C6").CreatePivotTable _
    TableDestination:="Dernier!R3C1", TableName:="Tableau croisé dynamique3", _
    DefaultVersion:=xlPivotTableVersion10

  3. #3
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    ou d'une façon dynamique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sheets.Add after:=Sheets(Sheets.Count)
    nom = Sheets(Sheets.Count).Name
    
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "base_donnée!R1C1:R51C6").CreatePivotTable _
    TableDestination:=nom & "!R3C1", TableName:="Tableau croisé dynamique3", _
    DefaultVersion:=xlPivotTableVersion10

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Regarde ça:http://www.developpez.net/forums/d1459212/logiciels/microsoft-office/excel/macros-vba-excel/creation-d-tcd-macros/#post7904864

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Par défaut
    Bonjour pour le coup c'était bien le nom de la feuille qui faisait que ça ne marchait pas.
    Merci beaucoup à vous deux pour vos réponse^^
    Cordialement Paul

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

Discussions similaires

  1. Macro Tableau croisé dynamique
    Par Vanene dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/07/2012, 10h10
  2. [XL-2010] Macro tableau croisé dynamique
    Par varik dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/05/2012, 11h11
  3. macro Tableau croisé dynamique
    Par nounouna dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/05/2010, 13h01
  4. [XL-2003] Macro Tableau croisé dynamique
    Par Otmanes dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2009, 17h18
  5. [XL-2007] Macro tableau croisé dynamique
    Par naty76 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2009, 09h35

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