Tableau croisé dynamique

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir tableau, croisé, TCD et Pivot.
En haut : tableau de données de départ. En bas, un tableau croisé dynamique généré.
En haut : tableau de données de départ. En bas, un tableau croisé dynamique généré.

Un tableau croisé dynamique (en anglais pivot table) est une fonctionnalité de certains tableurs qui permet de générer une synthèse d'une table de données brutes. Cela permet de créer des mises en forme de tableaux en choisissant les différents champs voulus, en abscisses ou en ordonnées.

La base de départ est une plage de cellules où chaque ligne correspond à un enregistrement (tableau du haut dans l'image). Dans le cas de l'exemple donné dans l'image c'est la plage "A1:E16". La première ligne de la plage est constituée des titres des champs (en-tête des colonnes en gras).

C'est avec ces titres de champs, que l'on sélectionne ou pas, qu'on arrange le tableau croisé dynamique (tableau du bas). On fait glisser les champs soit dans une colonne soit dans une ligne du modèle. Il existe un ordre des champs dans les lignes et les colonnes.

Un champ à faire glisser constituera les données du tableau croisé.

Dans l'exemple sur l'image, les champs "fournisseur" et "prix" ont été mis en ligne, les champs "Genre" et "taille" en colonne, dans cet ordre respectivement et le champ "Quantité" a été mis pour constituer les données.
Nota : Les sous-totaux des lignes et des colonnes ont été désactivés pour plus de lisibilité du tableau servant d'exemple.

Le tableau est dit croisé parce que l'on met des données à l'intersection (le "croisement") entre des champs disposés en ligne et en colonne.

Il est dynamique, parce que l'on peut apporter des changements à la table des données brutes, il suffit de demander de "rafraîchir" pour que le tableau croisé soit actualisé. On peut aussi vouloir rééditer la position des différents champs, ce qui re-générera le tableau.

Sommaire

[modifier] Intégration des tableaux croisés dynamiques dans les principaux tableurs

[modifier] Sous MS Excel

Sous Excel, le tableau croisé dynamique est généré grâce à un assistant appelé à partir du menu Données/Rapport de tableau croisé dynamique.

[modifier] Sous OpenOffice.org

OpenOffice préfère appeler le tableau croisé dynamique Pilote de données. On accède à l'assistant par le menu Données / Pilote de données.

[modifier] Grâce à un langage de programmation

Les tableaux croisés dynamiques peuvent être mis en œuvre directement via un langage de programmation, comme dans le cas du langage Oberon ou via un langage de macro utilisant les objets d'un tableur.

[modifier] Macro en VBA

Il est possible d'enregistrer une macro en Visual Basic for Applications dans Excel lors de la génération d'un tableau croisé dynamique. Le code généré peut être édité et modifié pour contrôler la formation du tableau.

Il faut commencer par sélectionner une plage de cellules :
Range("A1:E16").Select

Puis il faut créer le tableau. L'objet associé s'appelle PivotTables :
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= "Feuil1!R1C1:R16C5").CreatePivotTable TableDestination:="", TableName:= "Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10

On donne alors une destination à ce tableau croisé dynamique :
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select

Cet objet PivotTables est un conteneur des objets PivotFields, représentant les champs ajoutés, dont on peut choisir les propriétés :

  • .orientation (arguments : =xlRowField xlColumnField ou xlHidden), pour choisir si le champ est mis en ligne, en colonne ou non utilisé,
  • .position (=1 , 2 ,3 ...), pour choisir la position du champ dans la ligne ou la colonne,
  • .Subtotals = Array(False, False, False, False, False, ...), pour masquer les différents sous-totaux,

Il existe enfin une méthode .AddDataField permettant d'ajouter un certain champ (PivotFields) en tant que données à l'objet PivotTables. On donne deux arguments séparés par une virgule : le "Nom du champ" et xlSum,

[modifier] Logiciels permettant de manipuler les tableaux croisés dynamiques

[modifier] Voir aussi

Autres langues