Tableau croisé dynamique VBA

Tableau croisé dynamique VBA - VB/VBA/VBS - Programmation

Marsh Posté le 16-08-2010 à 09:12:58    

Bonjour,
 
j'ai besoin de générer un tableau croisé dynamique en VBA mais impossible d'obtenir ce que je veux.
En résumé, je possède un tableau avec X champs d'en-tête(pays, adresse, code client etc) et X valeur.
 
Je souhaiterais générer un tableau qui regroupe selon 2 critères de champ d'en-tête:
 
Champs 1|champs2|total valeur 1|total valeur 2|etc
             |champs2|total valeur 1|total valeur 2|etc
Champs 1|champs2|total valeur 1|total valeur 2|etc
             |champs2|total valeur 1|total valeur 2|etc
             |champs2|total valeur 1|total valeur 2|etc

Reply

Marsh Posté le 16-08-2010 à 09:12:58   

Reply

Marsh Posté le 15-09-2010 à 16:07:27    

je me répond tout seul si ca peut aider d'autre:
 

Code :
  1. ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
  2.         Montableau).CreatePivotTable TableDestination:="", _
  3.         TableName:="Tableau de synthèse", DefaultVersion:=xlPivotTableVersion10
  4.     ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
  5.     ActiveSheet.Cells(3, 1).Select
  6.    
  7.     Set TCD = ActiveSheet.PivotTables("Tableau de synthèse" )
  8.    
  9.     'regroupement
  10.     Select Case NbRegroumpement
  11.         Case 1
  12.             TCD.AddFields RowFields:=Array(Regroupement 1, "Données" )
  13.         Case 2
  14.             TCD.AddFields RowFields:=Array("Regroupement 1, Regroupement 2, "Données" )
  15.         Case 3
  16.             TCD.AddFields RowFields:=Array("Regroupement 1, Regroupement 2, Regroupement 3, "Données" )
  17.     End Select
  18.    
  19.    
  20.     'Colonne : Somme des valeurs
  21.     For index = 1 To UBound(TableauParametre)
  22.             With TCD.PivotFields( _
  23.                 TableauParametre(index, ColonneValeur))
  24.                 .Orientation = xlDataField
  25.                 .Caption = "Somme de " & TableauParametre(index, 3)
  26.                 .Function = xlSum
  27.             End With
  28.     Next index
  29.    
  30.     TCD.Name = "Tableau de synthèse"
  31.     With TCD.DataPivotField
  32.         .Orientation = xlColumnField
  33.         .Position = 1
  34.     End With
  35.     TCD.PivotSelect "", xlDataAndLabel, True
  36.     TCD.Format xlReport6
  37.     ActiveSheet.Name = "Tableau de synthèse"

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed