VBA : enregistrer macro pour TCD

Résolu
beenie -  
 beenie -
Bonjour,

Etant novice sur VBA, je rencontre un petit un problème que je n'arrive pas à résoudre lorsque j'essaie d'enregistrer une macro pour générer un TCD. Voici le code :

Sub Macro2()
'
' Macro2 Macro
'

'
Range("A1:G218").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Frais!R1C1:R218C7", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Feuil1!R3C1", TableName:="Tableau croisé dynamique1", _
DefaultVersion:=xlPivotTableVersion12

Sheets("Feuil1").Select
Cells(3, 1).Select

With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Catégorie")
.Orientation = xlRowField
.Position = 2
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("Montant TTC"), _
"Somme de Montant TTC", xlSum
End Sub

Une "erreur d'exécution '1004' Erreur définie par l'application ou l'objet" se produit et je n'arrive pas à résoudre ce problème.

Je vous saurais gré de bien vouloir m'aider.

Merci

1 réponse

  1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Essayer avec cette procédure modifiée au niveau du nom de la feuille ajoutée (shtdc) :
    Sub Macro2()
    '
    Range("A1:G218").Select
    Sheets.Add
    shtdc = ActiveSheet.Name
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "Frais!R1C1:R218C7", Version:=xlPivotTableVersion12).CreatePivotTable _
    TableDestination:=shtdc & "!R3C1", TableName:="Tableau croisé dynamique1", _
    DefaultVersion:=xlPivotTableVersion12
    Sheets(shtdc).Select
    Cells(3, 1).Select
    
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
    .Orientation = xlRowField
    .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
    "Catégorie")
    .Orientation = xlRowField
    .Position = 2
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
     PivotTables("Tableau croisé dynamique1").PivotFields("Montant TTC"), _
    "Somme de Montant TTC", xlSum
    End Sub
    2
    1. beenie
       
      Merci beaucoup, ça marche parfaitement. Quel soulagement!!!!
      Encore merci
      0