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"