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

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 !

marik06

XLDnaute Nouveau
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

Discussions similaires

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