Ajout de champs / données dans un TCD avec VBA

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 !

arnaud75017

XLDnaute Junior
Bonjour,

Je fais une macro pour monter un TCD et je me heurte à un problème: Je n'arrive pas à ajouter deux étiquettes de lignes "nom" et "prénom", le dernier écrase systématique le premier. J'ai trouvé ce code sur internet :

With Sheets("tcd").PivotTables("Mon TCD")
.AddFields RowFields:="Nom"
.AddFields RowFields:="Prenom"
.PivotFields("Age").Orientation = xlDataField
End With


Merci pour votre retour..
 

Pièces jointes

Dernière édition:
Re : Ajout de champs / données dans un TCD avec VBA

Une dernière petite question: Quand je crée mon tcd sur xls 2007 avec vba, j'ai automatique un "affichage classique de la disposition du TCD". Pourriez-vous me dire comment remettre la dispositon en version 2007?
 
Dernière édition:
Re : Ajout de champs / données dans un TCD avec VBA

Après avoir longuement cherché j'ai trouvé la réponse:
- Ajout de plusieurs étiquettes de lignes:

With ActiveSheet.PivotTables("Mon TCD").PivotFields("Nom")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Mon TCD").PivotFields("Prénom")
.Orientation = xlRowField
.Position = 2
End With

Concernant la disposition classique du TCD :

ActiveSheet.PivotTables("Mon TCD").InGridDropZones = False

En esperant que cela puisse vous être utile !
 
Re : Ajout de champs / données dans un TCD avec VBA

Bonsoir,


Code:
Sub macrotcd()

      Sheets.Add
    ActiveSheet.Name = "tcd"
    Sheets("base").Select
    ActiveWorkbook.Worksheets("tcdcible").PivotTables("Tableau croisé dynamique2"). _
        PivotCache.CreatePivotTable TableDestination:="tcd!R2C1", TableName:= _
        "Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10
    Sheets("tcd").Select
    Cells(2, 1).Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("nom")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("prenom")
        .Orientation = xlRowField
        .Position = 2
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique2").PivotFields("salaire"), _
        "Somme de salaire", xlSum
    ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique2").PivotFields("prix"), "Somme de prix", _
        xlSum
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").DataPivotField
        .Orientation = xlColumnField
        .Position = 1
    End With
    


End Sub
 
- 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

Retour