
| auteur : SilkyRoad |
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 entraîne 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'information. 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, nb, moyenne, produit, max, min, ecarttype, var) et d'analyser de façon 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 colonnes vides entre les données de la base.
Evitez de placer le TCD dans la feuille contenant la base de données.
|
| auteur : SilkyRoad |
Faites un clic droit dans le TCD.
Sélectionnez l'option Assistant dans le menu contextuel.
Cliquez sur le bouton Disposition.
Vous avez désormais accès à la fenêtre pour déplacer ou modifier les champs.
Cliquez sur les boutons OK et Terminer pour valider.
|
| auteur : SilkyRoad |
Sélectionnez la plage des cellules pouvant contenir des 0, à l'intérieur du TCD.
Faites un clic droit.
Sélectionnez l'option Format de cellule dans le menu contextuel.
Sélectionnez l'onglet Nombre, puis l'option Personnalisé dans la liste Catégorie.
Appliquez par exemple le format 0,0;-0,0;"" dans le champ Type.
Cliquez sur le bouton OK pour valider.
|
| auteur : SilkyRoad |
Sélectionnez le tableau croisé dynamique.
Sélectionnez l'onglet "Options" dans le ruban.
Cliquez sur le bouton "Options du tableau croisé dynamique".
Options.
Sélectionnez l'onglet "Disposition et mise en forme".
Dans le champ "Pour les cellules vides, afficher:", assurez vous que l'option est
cochée puis saisissez la valeur 0.
Cliquez sur le bouton OK pour valider.
|
| auteur : SilkyRoad |
Double cliquez sur l'entête d'un champ dans le TCD.
Dans la boîte de dialogue Champ dynamique, cliquez sur le bouton Avancé.
Sélectionnez l'option d'affichage des 10 premiers dans la boite de dialogue Options avancées de champ dynamique en choisissant
l'option Activé.
Vous pouvez aussi préciser un tri automatique en paramétrant les options Croissant ou Décroissant.
Le tri du champ peut être effectué par rapport à lui-même ou par rapport à un autre champ (dans la liste déroulante Sur le champ).
Cliquez sur les boutons OK pour valider.
|
| auteur : SilkyRoad |
Lors de la création du TCD, à l'étape 3, il est possible d'ajouter une deuxième fois un même champ dans la zone de données, et de
choisir un autre type de synthèse, par exemple en %:
Glissez une 2ème fois le champ dans la zone Données.
Double cliquez sur le champ que vous venez d'ajouter.
Cliquez sur le bouton Options dans la boite de dialogue Champ PivotTable.
Dans le champ Afficher les données, sélectionnez % du total.
Il est aussi possible de personnaliser le nom du champ à cette étape.
Cliquez sur le bouton OK pour valider.
|
| auteurs : SilkyRoad, Pierre Fauconnier |
Cette astuce est pratique pour redéfinir automatiquement la plage de données source, si vous
utilisez un nombre de lignes ou de colonnes variables. La plage nommée est modifiée en
fonction du nombre de cellules non vides.
Utilisez le Menu Insertion / Nom / Définir.
Dans le champ " Noms dans le classeur", nommez la plage de cellules
(par exemple NomPlage).
Dans le champ " Fait référence à:", indiquez la formule suivante:
=DECALER($A$1;;;NBVAL($A$1:$A$2000);NBVAL($A$1:$H$1))
Cet exemple limite la base de données de la colonne A jusqu'à H, et jusqu'à 2000 lignes.
Cliquez sur le bouton sur OK pour valider.
Vous pouvez ensuite utiliser le nom pour définir l'emplacement des données (2ème étape lorsque vous créez le tableau croisé dynamique).
=NomPlage
IMPORTANT:
Il doit impérativement y avoir des étiquettes dans toutes les colonnes spécifiées.
Pour utiliser la même formule sans limite de lignes et de colonnes:
=DECALER(Feuil1!$A$1;;;NBVAL(Feuil1!$A:$A);NBVAL(Feuil1!$1:$1))
Privilégiez l'utilisation des références absolues, sinon le résultat peut être très déconcertant.
La base de données ne doit pas contenir des Noms de champ vides.
Un enregistrement peut être vide, sauf dans la première colonne de gauche.
Il est préférable de démarrer la base de données dans la cellule A1.
Ne créez pas deux tableaux sur la même ligne.
Vous pouvez utiliser la même feuille pour plusieurs tables "mono-champs" (sur une colonne), en passant 1 comme cinquième
paramètre de la fonction DECALER. Vous déterminez de cette manière une plage d'une seule colonne.
Ainsi, si vous devez gérer des catégories de produits et des catégories de clients, par exemple, indiquez les catégories de produits
en colonne A, les catégories de clients en colonne B, puis utilisez:
Catégories de produits =DECALER($A$1;1;0;NBVAL($A:$A)-1;1)
Catégories de clients =DECALER($B$1;1;0;NBVAL($B:$B)-1;1)
Il aussi envisageable de remplacer les plages nommées par les Listes (Excel2003)
et les Tableaux (Excel2007).
|
| auteur : SilkyRoad | Vba |
Sub CreerTCD ()
ThisWorkbook. PivotCaches . Add (SourceType:= xlDatabase, SourceData:= _
[Feuil1!A1]. CurrentRegion . Address (, , xlR1C1, True )). CreatePivotTable _
TableDestination:= " Feuil2!R3C1 " , _
TableName:= " Mon TCD "
With Feuil2. PivotTables (" Mon TCD " )
. AddFields RowFields:= " Ville "
. PivotFields (" CA " ). Orientation = xlDataField
End With
End Sub
|
|
| auteur : SilkyRoad |
Cet exemple applique la fonction Moyenne au champ "Somme de CA".
Vba |
Sub AppliquerFonctionTCD ()
Feuil2. PivotTables (" Mon TCD " ). PivotFields (" Somme de CA " ). Function = xlAverage
End Sub
|
|
| auteur : SilkyRoad | Vba |
Sub compterNombreLignesTCD ()
Dim Pvt As PivotTable
Set Pvt = Worksheets (" Feuil1 " ). PivotTables (" Tableau croisé dynamique1 " )
MsgBox Pvt. TableRange1 . Rows . Count
MsgBox Pvt. TableRange2 . Rows . Count
End Sub
|
|
| auteur : SilkyRoad |
Cette question revient souvent, suite au passage à Excel2007.
En fait il suffit d'ajouter le bouton "Assistant tableau croisé dynamique" dans la barre d'outils accès rapide.
Cliquez sur le bouton "Office".
Cliquez sur le bouton "Options Excel".
Sélectionnez l'option "Personnaliser".
Dans le menu déroulant "Choisir les commandes dans les catégories...", sélectionnez l'option "Commandes non présentes dans le ruban".
Recherchez la commande "Assistant tableau croisé dynamique".
Sélectionnez la commande et cliquez sur le bouton "Ajouter" pour qu'il apparaisse dans la barre d'outils d'accès rapide.
Cliquez sur le bouton OK pour valider.
Vous pouvez ensuite utiliser l'assistant pour créer des TCD, depuis la barre d'outils d'accès rapide:
Sélectionnez "Plages de feuilles de calcul avec étiquettes".
|
| auteur : SilkyRoad | Vba |
Sub CreationTCD_MultiPage ()
Dim NomFeuille As String
Dim i As Integer
Dim RefPlage As String , Cible As String
Dim Tableau () As String
Dim ListeFeuilles As Variant
Application. ScreenUpdating = False
ListeFeuilles = Array (" Feuil1 " , " Feuil2 " , " Feuil3 " )
ReDim Preserve Tableau (1 To UBound (ListeFeuilles) + 1 , 1 To 2 )
For i = LBound (ListeFeuilles) To UBound (ListeFeuilles)
NomFeuille = ListeFeuilles (i)
RefPlage = Range (" A1:B6 " ). Address (ReferenceStyle:= xlR1C1, _
RowAbsolute:= True , ColumnAbsolute:= True )
Cible = NomFeuille & " ! " & RefPlage
Tableau (i + 1 , 1 ) = Cible
Tableau (i + 1 , 2 ) = ListeFeuilles (i)
Next i
ThisWorkbook. PivotCaches . Add (SourceType:= xlConsolidation, _
SourceData:= Tableau). CreatePivotTable _
TableDestination:= Worksheets (" Synthese " ). Range (" A1 " ), _
TableName:= " PivotTable1 "
Worksheets (" Synthese " ). Activate
With ActiveSheet. PivotTables (" PivotTable1 " )
. ColumnGrand = False
. HasAutoFormat = False
. RowGrand = False
. SmallGrid = False
. PivotFields (1 ). PivotItems (1 ). Position = 1
End With
Application. ScreenUpdating = True
End Sub
|
|
| auteur : SilkyRoad |
En utilisant l'assistant de création des TCD (testé sous Excel2007):
Les données de chaque classeur sont supposées dans une plage nommée "PlageSource".
Etape 1, sélectionnez l'option "Plages de feuilles de calcul avec étiquettes".
Cliquez sur le bouton "Suivant" (2 fois jusqu'a l'étape 2b).
Vous pouvez sélectionner vos classeurs source en cliquant sur le bouton "Parcourir".
Complétez le nom de la plage nommée avant de cliquer sur le bouton "Ajouter", pour obtenir une syntaxe dans la style:
'C:\Documents and Settings\mimi\dossier\Classeur1.xls'!PlageSource
Sélectionnez les classeurs, complétez la plage nommée et cliquez sur le bouton "Ajouter" autant de fois que
vous avez de classeurs sources.
Ensuite, cliquez sur le bouton "Suivant".
Précisez la cellule de destination pour le tableau croisé.
Cliquez sur le bouton "Terminer".
Le TCD qui s'affiche contient notamment un champ de page permettant de filtrer les classeurs sources.
|
| auteur : SilkyRoad |
La propriété SourceData renvoie une référence de style R1C1 (Feuil2!L1C1:L9C2).
Pour retrouver l'équivalence en référence xlA1 (Feuil2!$A$1:$B$9), utilisez le code suivant:
Vba |
Option Explicit
Option Compare Text
Sub SourceTCD_Ref_xlA1_FR ()
Dim Pvt As PivotTable
Dim Cible As String , NomFeuille As String
Set Pvt = ActiveSheet. PivotTables (1 )
NomFeuille = Left (Pvt. SourceData , InStr (1 , Pvt. SourceData , " ! " ) - 1 )
Cible = Replace (Mid (Pvt. SourceData , Len (NomFeuille) + 2 ), " L " , " R " )
MsgBox NomFeuille & " ! " & Replace (Application. ConvertFormula ( _
Formula:= Cible, _
fromReferenceStyle:= xlR1C1, _
toReferenceStyle:= xlA1, _
toAbsolute:= xlAbsolute), _
" [ " & ThisWorkbook. Name & " ] " , " " )
End Sub
|
Si vous utilisez une version anglaise d'Excel, vous pouvez écrire directement:
Vba |
Sub SourceTCD_Ref_xlA1_EN ()
Dim Pvt As PivotTable
Dim Cible As String
Set Pvt = ActiveSheet. PivotTables (1 )
Cible = Pvt. SourceData
MsgBox Replace (Application. ConvertFormula ( _
Formula:= Cible, _
fromReferenceStyle:= xlR1C1, _
toReferenceStyle:= xlA1, _
toAbsolute:= xlAbsolute), _
" [ " & ThisWorkbook. Name & " ] " , " " )
End Sub
|
|
| auteur : SilkyRoad |
Un champ de page sert à afficher et filtrer des sous-groupes de données dans un tableau croisé dynamique.
Lors de la création, une zone "Déposez un champ de page ici" s'affiche en tête du TCD (Nota: dans Excel2007, cette zone est
nommée "Filtre du rapport").
Sélectionnez un champ, qui va servir de filtre, dans la liste et glissez-le dans cette zone.
Ensuite, à chaque fois que vous choisissez un élément dans la liste du champ de page, le tableau croisé
est actualisé et affiche uniquement les données filtrées correspondantes.
|
| auteur : SilkyRoad |
Faites un clic droit dans le TCD.
Choisissez "Options du tableau croisé dynamique" dans le menu contextuel.
Sélectionnez l'onglet "Affichage".
Cochez l'option "Disposition classique du tableau croisé dynamique (glisser de champs dans la grille)".
Cliquez sur le bouton OK pour valider.
|
| auteur : Cafeine |
Sélectionnez la plage de cellules (par exemple : A2:A13)
Menu Edition
Atteindre (ou touche raccourci F5)
Cellules
Sélectionnez "Choisir Cellules Vides"
Tapez =A2
Validez par Ctrl+Entrée
Pour utiliser cette option dans Excel2007:
Sélectionnez la plage de cellules.
Sélectionnez l'onglet "Accueil".
Cliquez sur le bouton "Rechercher et sélectionner" dans le groupe "Edition".
Choisissez l'option "sélectionner les cellules".
Choisissez l'option "Cellules vides".
Cliquez sur le bouton OK pour valider.
Tapez =A2
Validez par Ctrl+Entrée
|
| auteur : SilkyRoad |
Lorsque vous faites référence à une cellule du rapport, la
formule LIREDONNEESTABCROISDYNAMIQUE est créée automatiquement.
Cette fonction permet d'extraire le contenu d'un TCD.
Pour désactiver cette option dans les versions antérieures d'Excel:
Dans la barre d'outils du Tableau croisé dynamique,
cliquez sur la flèche "Options de barre d'outils" (à l'extrémité droite de la barre d'outils).
Cliquez sur "Ajouter/Supprimer des boutons",
puis sélectionnez "Générer l'extraction de données croisées dynamiques".
Cliquez dans la feuille de calcul.
Cliquez sur le bouton "Générer l'extraction de données croisées dynamiques" qui apparaît à présent sur la barre d'outils
Tableau croisé dynamique.
Lorsque vous utilisez le bouton, celui-ci prend l'attribut activé ou désactivé.
Si le bouton est désactivé, la formule LIREDONNEESTABCROISDYNAMIQUE n'est plus générée automatiquement.
Dans Excel 2007:
Sélectionnez le TCD.
Sélectionnez l'onglet "Options" dans le ruban.
Cliquez sur le bouton "Options du tableau croisé dynamique".
Ouvrez le menu déroulant "Options".
Décochez l'option "Générer l'extraction de données croisées dynamiques".
Une autre solution pour désactiver cet outil dans Excel 2007:
Cliquez sur le bouton "Office".
Cliquez sur le menu "Formules".
Décochez l'option "Utiliser les fonctions LIREDONNEESTABCROISDYNAMIQUE pour les références à des tableaux croisés dynamiques".
Cliquez sur le bouton OK pour valider.
|
| auteur : SilkyRoad |
La procédure fait apparaitre en couleur les mises à jour effectuées dans le TCD, lorsque vous utilisez le bouton "Actualiser".
Les données initiales sont stockées dans un tableau lors de l'ouverture du classeur. La procédure va comparer le contenu
du tableau et le TCD à chaque réactualisation et personnaliser la couleur des cellules modifiées.
Remarque:
Dans cet exemple, tout le TCD change de couleur lorsqu'un champ ou une étiquette est supprimée ou ajoutée.
Vba |
Option Explicit
Public Tableau As Variant
|
Vba |
Option Explicit
Private Sub Workbook_Open ()
Dim Pvt As PivotTable
Set Pvt = Worksheets (" Feuil4 " ). PivotTables (" Tableau croisé dynamique1 " )
Tableau = Pvt. TableRange1 . Value
End Sub
|
Vba |
Option Explicit
Option Base 1
Private Sub Worksheet_PivotTableUpdate (ByVal Target As PivotTable)
Dim Cell As Range
Dim i As Long
Dim j As Integer
i = Target. TableRange1 . Cells (1 , 1 ). Row - 1
j = Target. TableRange1 . Cells (1 , 1 ). Column - 1
If UBound (Tableau, 2 ) < > Target. TableRange1 . Columns . Count Or _
UBound (Tableau, 1 ) < > Target. TableRange1 . Rows . Count Then
Erase Tableau
Tableau = Target. TableRange1 . Value
Target. TableRange1 . Cells . Interior . ColorIndex = 4
Exit Sub
End If
For Each Cell In Target. TableRange1
If Cell. Value < > Tableau (Cell. Row - i, Cell. Column - j) Then
Cell. Interior . ColorIndex = 4
Else
Cell. Interior . ColorIndex = 9
End If
Next Cell
Erase Tableau
Tableau = Target. TableRange1 . Value
End Sub
|
|
| auteur : SilkyRoad |
Dans Excel 2007, les limites de capacité des tableaux croisés dynamiques ont été repoussées et les paramètres de
mises en forme améliorés. La puissance et les nombreuses options disponibles
en font un outil incontournable pour l'analyse et la synthèse de vos données.
Consultez le tutoriel.
|
| auteur : SilkyRoad | Vba |
Dim PvT As PivotTable
Dim PvF As PivotField
On Error Resume Next
For Each PvT In ActiveSheet. PivotTables
For Each PvF In PvT. PivotFields
PvF. Subtotals (1 ) = True
PvF. Subtotals (1 ) = False
Next PvF
Next PvT
|
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2008
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|