Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. VBA Excel (versions 2021 et Microsoft 365)
  3. Les tableaux croisés et graphiques
Extrait - VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
Extraits du livre
VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
2 avis
Revenir à la page d'achat du livre

Les tableaux croisés et graphiques

Les tableaux croisés dynamiques

La collection PivotTables contient tous les objets de tableau croisé dynamique (objets PivotTable) contenus dans une feuille de calcul.

1. L’objet PivotTable

Cette section décrit les collections, propriétés et méthodes les plus couramment utilisées pour la création et la modification de tableaux croisés dynamiques.

a. Collections

CalculatedFields

Collection de tous les champs calculés du rapport de tableau croisé dynamique spécifié.

ColumnFields

Collection de tous les champs du rapport de tableau croisé dynamique spécifié qui sont actuellement affichés comme des champs de colonne.

DataFields

Collection de tous les champs du rapport de tableau croisé dynamique spécifié qui sont actuellement affichés comme des champs de données.

HiddenFields

Collection de tous les champs de la source de données du rapport de tableau croisé dynamique spécifié qui ne sont pas affichés.

PageFields

Collection de tous les champs du rapport de tableau croisé dynamique spécifié qui s’affichent comme des champs de page.

RowFields

Collection de tous les champs du rapport de tableau croisé dynamique spécifié qui s’affichent comme des champs de ligne.

PivotFields

Collection de tous les champs de la source de données du rapport de tableau croisé dynamique spécifié, qu’ils soient affichés ou non.

VisibleFields

Collection de tous les champs de la source de données du rapport de tableau croisé dynamique spécifié qui sont affichés.

Toutes ces collections renvoient des objets PivotField représentant un champ de tableau croisé dynamique.

b. Propriétés

Les propriétés décrites ci-après...

Les graphiques

Un graphique est représenté par un objet Chart, contenu dans la collection Shapes (objets Shape) qui représente les formes ou les objets dessinés d’une feuille de calcul. Dans le cas d’un graphique, l’objet Shape représente la zone de graphique.

1. L’objet Shape

Cette section décrit les propriétés et méthodes les plus couramment utilisées pour la création et la mise en forme de zones graphiques.

a. Propriétés

Propriété

Description

Type

Chart

Renvoie un objet Chart qui représente le graphique contenu dans la forme.

Objet

Fill

Renvoie un objet FillFormat qui représente la mise en forme du remplissage de la forme.

Objet

Line

Renvoie un objet LineFormat qui contient les propriétés de mise en forme de la bordure de la forme.

Objet

TopLeftCell

Renvoie un objet Range qui représente la cellule qui se trouve sous le coin supérieur gauche de la forme.

Objet

HasChart

Indique si la forme contient un graphique.

Booléen

Height

Hauteur de la forme en points.

Réel simple

Left

Distance, en points, entre le bord gauche de la forme et le bord gauche de la colonne A.

Réel simple

Top

Distance, en points, entre le bord supérieur de la forme et le bord supérieur de la feuille de calcul.

Réel simple

Width

Largeur de la forme en points.

Réel simple

b. Méthodes

Copy

Copie la forme dans le Presse-papiers.

CopyPicture

Copie la forme dans le Presse-papiers en tant qu’image.

Delete

Supprime la forme.

2. L’objet Chart

Cette section décrit les propriétés et méthodes les plus couramment utilisées pour la création et la mise en forme de graphiques.

a. Collections

Axes

Collection de tous les axes du graphique.

SeriesCollections

Collection de toutes les séries de données du graphique.

b. Propriétés...

Exemple d’application

1. Présentation

L’exemple suivant permet de générer automatiquement des tableaux et graphiques statistiques sur la répartition du temps de travail des salariés par jour, semaine, activité...

Les données source sont situées dans le tableau de cellules nommé "TableauTemps" présenté ci-après.

Extrait des données source

images/N05RI01.png

Exemple de tableau croisé et graphique généré

images/N05RI02.png

2. Code VBA de l’exemple

La procédure Genere_Stat permet de générer l’ensemble des tableaux et graphiques. Elle fait appel à la procédure Creation_TCD pour la création des tableaux croisés dynamiques.

Option Explicit 
Dim oWbk As Workbook 
_____________________________________________________________ 
Sub Genere_Stat() 
Dim oSheet As Worksheet 
Dim oShape As Shape 
Dim oChart As Chart 
Dim iNbVision As Integer 
Dim iNbAct As Integer 
Dim i As Integer 
Dim j As Integer 
Dim k As Integer 
 
' Supprime les feuilles existantes 
Set oWbk = ThisWorkbook 
Application.DisplayAlerts = False 
For i = oWbk.Sheets.Count To 2 Step -1 
   oWbk.Sheets(i).Delete 
Next 
Application.DisplayAlerts = True 
 
' Ajoute les nouvelles feuilles 
For i = oWbk.Sheets.Count + 1 To 5 
   oWbk.Sheets.Add after:=oWbk.Sheets(oWbk.Sheets.Count) 
Next 
oWbk.Sheets(2).Name = "SYNTHESE TACHE" 
oWbk.Sheets(3).Name = "SYNTHESE ACTIVITE" 
oWbk.Sheets(4).Name = "SYNTHESE JOUR" 
oWbk.Sheets(5).Name = "SYNTHESE VISION" 
 
' Tableau croisé dynamique Synthese Tache 
Creation_TCD "TCD1", "Synthese Tache", "Activite", "Tache" 
 
' Tableau...

Création d’un tableau croisé dynamique avec des sparklines

L’exemple suivant permet :

  • de créer et de personnaliser un tableau croisé dynamique en utilisant les collections d’objets PivotTables et PivotFields,

  • d’ajouter une mise en forme conditionnelle de type barre de données en utilisant la collection d’objets FormatConditions,

  • d’ajouter des graphiques sparkline en utilisant la collection d’objets SparklineGroups,

  • d’ajouter un segment pour filtrer les données sur le client en utilisant la collection d’objets SlicerCaches.

La feuille de calcul, créée au moyen du code VBA, se présente sous la forme suivante :

images/N05RI03.png

Pour exécuter cet exemple, effectuez les opérations suivantes :

 Ouvrez le classeur Rapport des ventes.xlsx livré avec les exemples.

 Enregistrez le classeur sous Rapport des ventes.xlsm.

 Affectez le nom Ventes_2021 à l’ensemble des cellules de la feuille "Données Sources" (plage "A1:G278").

 Insérez le code de la procédure suivante dans un nouveau module.

 Lancez l’exécution du code.

Sub Tableau_Croise()  
Dim wSheet As Worksheet  
Dim i As Integer  
Dim NbLignes As Integer  
   
    ' Sélectionne la plage nommée (source de données)  
    Application.Goto Reference:="Ventes_2021"  
    
    ' Supprime la feuille TCD_Produits si elle existe 
    For i = 1 To Worksheets.Count  
       If Worksheets(i).Name = "TCD_Produits" Then  
          Application.DisplayAlerts = False  
          Worksheets(i).Delete...