Tableau croisé dynamique avec une macro

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

Nazim

Guest
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:
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 🙂
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Histogramme
Réponses
4
Affichages
293
Retour