Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Tableau croisé dynamique à l'aide d'une macro

  • Initiateur de la discussion Initiateur de la discussion marik06
  • 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 !

M

marik06

Guest
Bonsoir à toutes et à tous,
J'aimerais pouvoir générer un tableau croisé dynamique à l'aide d'une macro.
Dans l'onglet 1 du fichier joint, il y a le tableau à sélectionner (qui peut être plus petit ou plus grand selon les mois) et dans l'onglet 2, il y a le TCD à générer.
Ne connaissant pas le VBA, je me disais que je pourrais enregistrer une macro en effectuant pas à pas les actions à faire pour obtenir le TCD.
J'ai bien pu faire une macro. Ensuite, j'ai supprimé l'onglet 2 et j'ai relancé la macro. Excel m'a indiqué une erreur d'exécution 5 avec argument ou appel de procédure incorrect.
Pouvez-vous m'aider ?
Avez-vous besoin du texte de la macro générée ?
Merci d'avance
 

Pièces jointes

Re : Tableau croisé dynamique à l'aide d'une macro

Bonjour à tous,

Un essai avec :

VB:
Option Explicit


Sub Création_TCD()
    Application.DisplayAlerts = 0
    Sheets("TCD").Delete
    Application.DisplayAlerts = 1
    Sheets.Add after:=Sheets("Data")
    ActiveSheet.Name = "TCD"
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
             "Tablo_TCD", Version:=xlPivotTableVersion15).CreatePivotTable _
             TableDestination:="TCD!R2C2", TableName:="TCD1", DefaultVersion:=xlPivotTableVersion15
    With ActiveSheet.PivotTables("TCD1")
        With .PivotFields("Nom")
            .Orientation = xlRowField
            .Position = 1
        End With
        With .PivotFields("Sous marque")
            .Orientation = xlRowField
            .Position = 2
        End With
        With .PivotFields("date")
            .Orientation = xlColumnField
            .Position = 1
        End With
        .TableStyle2 = "PivotStyleMedium4"
        .PivotFields("Nom").LayoutForm = xlTabular
        .AddDataField ActiveSheet.PivotTables("TCD1").PivotFields("Quantité"), " Quantité", xlSum
        .CompactLayoutColumnHeader = "Date "
        .CompactLayoutRowHeader = "Noms"
    End With
End Sub

A+ à tous
 

Pièces jointes

Dernière édition:
Re : Tableau croisé dynamique à l'aide d'une macro

Bonjour JCGL,
Fonctionnel sur Excel 2013, il faut changer "xlPivotTableVersion15" par "xlPivotTableVersion12" pour Excel 2007 comme je l'utilise.
à part ça c'est nickel.
 
Re : Tableau croisé dynamique à l'aide d'une macro

Vous êtes tous formidable.
Ça marche car j'utilise cette macro sur du 2010 donc j'ai modifié "xlPivotTableVersion15" par xlPivotTableVersion14.
Mille mercis
Bon WE
Marik
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…