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

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

  • Classeur2.xlsm
    24.7 KB · Affichages: 68
  • Classeur2.xlsm
    24.7 KB · Affichages: 90
  • Classeur2.xlsm
    24.7 KB · Affichages: 93
Dernière édition:

arnaud75017

XLDnaute Junior
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:

arnaud75017

XLDnaute Junior
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 !
 

kingfadhel

XLDnaute Impliqué
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
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 730
Membres
110 553
dernier inscrit
loic55