Tableau croisé dynamique avec une macro

  • Initiateur de la discussion Initiateur de la discussion Nazim
  • Date de début Date de début

Nazim

XLDnaute Junior
Bonjour,

je tente depuis deux jours à trouver une solution pour automatiser la création d'un TCD sans résultat alors je me suis permis de vous demander de l'aide.

Je souhaite mettre en place une macro qui m'automatisera la création d'un tableau croisé dynamique.
je met en pièce jointe un exemple de jeu de données et aussi le tableau que je souhaite obtenir a la fin.
(Sachant que la taille du fichier peut être différente d'un fichier a un autre mais la disposition des colonnes est toujours la même)

Je vous remercie pour votre aide,

Regards,
Nazim
 

Pièces jointes

Dernière modification par un modérateur:

Nazim

XLDnaute Junior
Re : Tableau croisé dynamique avec une macro

Ce que j'ai fait, j'ai enregistré une macro, mais je n'arrive pas à la réutilisée.
Sub Macro2()
'
' Macro2 Macro
'

'
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Fichier retraité!R4C1:R184C15", Version:=xlPivotTableVersion12). _
CreatePivotTable TableDestination:="Feuil1!R3C1", TableName:= _
"Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion12
Sheets("Feuil1").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Is ticket a Faible/MI?")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique2").PivotFields("Is ticket a Faible/MI?"), _
"Nombre de Is ticket a Faible/MI?", xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Entity")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Resolve Month")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Resolve Month")
.Orientation = xlColumnField
.Position = 1
End With
End Sub

Au débegage, j'ai une erreur au niveau de l'instruction 2 "" Argument ou appel de
procédure incorrcet"."

Merci encore une fois :)
 

job75

XLDnaute Barbatruc
Re : Tableau croisé dynamique avec une macro

Bonjour Nazim, tatiak,

Comme toutes les macros enregistrées il fallait la nettoyer et la compléter :

Code:
Sub CreerTCD()
With Feuil4 'CodeName de la feuille du TCD
  .Cells.Delete 'RAZ
  ThisWorkbook.PivotCaches.Create(xlDatabase, [A4].CurrentRegion).CreatePivotTable .[A3], "TCD1"
  With .PivotTables(1).PivotFields([A4].Text)
    .Orientation = xlRowField
    .Position = 1
  End With
  .PivotTables(1).AddDataField .PivotTables(1).PivotFields([A4].Text), "Nombre de " & [A4], xlCount
  With .PivotTables(1).PivotFields([B4].Text)
    .Orientation = xlRowField
    .Position = 1
  End With
  With .PivotTables(1).PivotFields([E4].Text)
    .Orientation = xlColumnField
    .Position = 1
  End With
  .Activate
End With
End Sub
Fichier joint.

A+
 

Pièces jointes

Dernière édition:

Discussions similaires

Réponses
2
Affichages
282
Réponses
2
Affichages
509
  • Question Question
Microsoft 365 Histogramme
Réponses
4
Affichages
173
  • Question Question
Microsoft 365 VBA Excel PowerPoint
Réponses
5
Affichages
299
Réponses
4
Affichages
536