Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2056 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Tableau croisé dynamique VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tableau croisé dynamique VBA

n°2017072
thefrereto​ck
Posté le 16-08-2010 à 09:12:58  profilanswer
 

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

mood
Publicité
Posté le 16-08-2010 à 09:12:58  profilanswer
 

n°2023100
thefrereto​ck
Posté le 15-09-2010 à 16:07:27  profilanswer
 

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"


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Tableau croisé dynamique VBA

 

Sujets relatifs
Conversion de type c pour une utilisation de dll VBAVBA - Userform - Pb de superposition des images et des labels
Macro pour copier un tableau de tableau variable vers Word Allocation dynamique d'un tableau f90
Tableau : Tri à Bulles[VBA/Excel] - Envoyer une selection variable dans une sous fonction ?
VBA - excel - Tableau croisé dynamique - grouper...[VB/VBA/VBS] Excel - Lien entre Tableau croisé dynamique et cellule
VBA : actualisation tableau croisé dynamique[VBA]Tableau croisé dynamique sur plage variable
Plus de sujets relatifs à : Tableau croisé dynamique VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR