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 :

Création Tcd via macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 56
    Points : 49
    Points
    49
    Par défaut Création Tcd via macro
    Bonsoir,

    J'ai réaliser un code VBA qui se situe sur un fichier excel "A" afin, que dans fichier excel "B", il ajoute une nouvelle page, et fasse un tableau croisé dynamique.
    Or je dois avoir un souci au niveau de mon code car j'ai le debug qui se met en route en VBA m'indiquant qu'il est "impossible de lire la propriété pivotTables dans la classe Worksheet", .
    C'est une macro que j'ai réalisé avec l'assistant et je ne comprends pas où est le pb...
    Si quelqu'un pouvait m'éclairer.
    Merci

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
        'Création du tableau croisé dynamique
        Sheets("Feuil1").Select
        Sheets.Add
        ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
            "Feuil1!C1:C50").CreatePivotTable TableDestination:= _
            "'[Feuille de calcul dans AQ10Z_MR (1)]Feuil2'!R3C1", TableName:= _
            "Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
        ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _
            Array("Métier", "Pos. tr.", "Données"), PageFields:="Superviseur"
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Qté bonne conf")
            .Orientation = xlDataField
            .Caption = "Somme de Qté bonne conf"
            .Position = 1
            .Function = xlSum
        End With
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "TA_M_TOT")
            .Orientation = xlDataField
            .Caption = "Somme de TA_M_TOT"
            .Position = 2
            .Function = xlSum
        End With
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "TP_M_TOT")
            .Orientation = xlDataField
            .Caption = "Somme de TP_M_TOT"
            .Function = xlSum
        End With
        Range("C3").Select
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").DataPivotField
            .Orientation = xlColumnField
            .Position = 1
        End With
        ActiveSheet.PivotTables("Tableau croisé dynamique1").CalculatedFields.Add _
            "TA/TP mac", "=TA_M_TOT /TP_M_TOT", True
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("TA/TP mac"). _
            Orientation = xlDataField
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotSelect _
            "'Somme de TA/TP mac'", xlDataAndLabel, True
        Selection.NumberFormat = "0.0%"
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotSelect _
            "'Somme de TA_M_TOT'", xlDataAndLabel, True
        Selection.NumberFormat = "0.0"

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 865
    Points
    3 865
    Par défaut
    Bonjour,

    Est-ce qu'il ne se perd pas en cours de chemin dans tes feuilles ?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 56
    Points : 49
    Points
    49
    Par défaut
    Peut-être bien effectivement...

    la création de la 2nde feuille est OK, il y a un tableau croisé qui a été créé mais vide avec aucune donnée, comme si les données de base du tableau n'existaient pas, car ça plante ici...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _
            Array("Métier", "Pos. tr.", "Données"), PageFields:="Superviseur"

Discussions similaires

  1. [XL-2010] TCD via Macro, erreur d'exécution '1004'
    Par Jimmy G. dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/07/2014, 10h06
  2. [Toutes versions] filtre TCD via macro vba sur texte contenu
    Par fomy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/08/2012, 09h35
  3. [XL-2003] Effacer TCD via Macro
    Par LeSmoox dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/04/2012, 17h42
  4. mise en forme TCD via macro vba
    Par Vinzz974 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/02/2012, 15h48
  5. E-XP : création TCD via VBA.
    Par gillou13 dans le forum Excel
    Réponses: 1
    Dernier message: 27/02/2009, 20h42

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