Q: C'est quoi Un Tableau Croisé Dynamique ?
R:
Un Tableau Croisé Dynamique (TCD) est la présentation d'une source de données sous forme de tableau. Il est dynamique car toute modification de la source entraine la mise à jour du tableau (l'actualisation des données). Il permet de combiner et comparer rapidement un grand nombre de données.
Dans un rapport de tableau croisé dynamique, chaque colonne ou champ de données sources devient un champ de tableau croisé dynamique qui synthétise plusieurs lignes d'informations. La présentation du tableau peut être paramétrée en personnalisant la position des champs de données, en fonction des résultats à visualiser.
Cet outil permet d'effectuer des calculs (somme, nombre ,produit , max ,ecart type ... ) et d'analyser de facon Dynamique la source de données. Il est possible de faire pivoter les lignes et colonnes pour afficher différentes synthèses des données sources.
Le TCD est un outil statistique qui repose avant tout sur une base de données bien structurée. Il ne faut pas laisser de lignes ou colonnes vides entre les données de la base.
Evitez (si possible) de placer le TCD dans la feuille contenant la base de données.
********
Q: Comment créer un TCD par macro ?
R:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Sub CreerTCD() 'SourceData: Définit la source de données dans le TCD. '[Feuil1!A1].CurrentRegion.Address(, , xlR1C1, True) permet d'étendre 'automatiquement la sélection de façon à y inclure toute la zone en cours 'à partir de la cellule A1, dans la Feuil1. 'TableDestination: Définit la position du TCD (cellule A3 dans la Feuil2). 'TableName: Définit le nom du nouveau TCD. ("Mon TCD") ThisWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ [Feuil1!A1].CurrentRegion.Address(, , xlR1C1, True)).CreatePivotTable _ TableDestination:="Feuil2!R3C1", _ TableName:="Mon TCD" 'Mise en forme: With Feuil2.PivotTables("Mon TCD") 'Ajoute un champ de lignes nommé "Ville". 'Le nom du champ "Ville" doit préalablement exister comme entête de la 'source de données. .AddFields RowFields:="Ville" 'Définit l'orientation du champ nommé "CA" en tant que Donnée. 'le nom du champ "CA" doit préalablement exister comme entête 'de la source de données. .PivotFields("CA").Orientation = xlDataField End With End Sub
************
Q. Comment appliquer la fonction Moyenne au champ "Somme de CA" du TCD ?
R.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Sub AppliquerFonctionTCD() Feuil2.PivotTables("Mon TCD").PivotFields("Somme de CA").Function = xlAverage 'Les autres constantes disponibles pour la propriété Function: 'xlAverage - Moyenne 'xlCountNums - Nb 'xlMin - Min 'xlStDev - Ecartype 'xlSum - Somme 'xlVar - Var 'xlCount - Nombre 'xlMax - Max 'xlProduct - Produit 'xlStDevP - Ecartypep 'xlUnknown - 'xlVarP - Varp End Sub
*************
Q: Comment modifier la source d'un TCD ?
R:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub ModifierSource() Dim objCellule As Range Dim Pvt As PivotTable 'Définit la nouvelle plage source Set objCellule = ThisWorkbook.Sheets("Feuil1").Range("A1:B50") 'Définit le TCD qui va être mis à jour. Set Pvt = Sheets("Feuil2").PivotTables("Mon TCD") Pvt.PivotTableWizard SourceType:=xlDatabase, _ SourceData:=objCellule.Address(, , xlR1C1, True) End Sub
***********
Q: Comment détruire les anciennes étiquettes dans un TCD ?
R:
Suite aux modifications d'étiquettes dans la base de données, il peut arriver que le TCD ne s'actualise pas et les étiquettes de colonnes persistent dans les filtres des champs. Utilisez la macro ci dessous pour y remédier.
(à partir d'excel 2002 uniquement)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim Pvt As PivotTable Set Pvt = ActiveSheet.PivotTables("Mon TCD") Pvt.PivotCache.MissingItemsLimit = xlMissingItemsNone
Partager