Blog ENI : Toute la veille numérique !
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée

Les graphiques

Objectifs

Dans ce chapitre, nous allons dans un premier temps rappeler comment créer un graphique à partir d’une plage de cellules en utilisant le ruban Excel.

Il existe des milliers de combinaisons graphiques possibles ; il existe même un championnat du monde Excel qui se déroule sur des réalisations graphiques !

Sans avoir l’objectif de faire de vous un champion du monde de graphiques Excel, vous verrez dans ce chapitre les objets associés à la création de graphiques utilisés en VBA et comment utiliser l’Enregistreur de macros pour que VBA écrive du code à votre place. Enfin, une série d’exercices vous permettra de vous assurer que ces nouvelles connaissances sont bien acquises.

Graphiques sous Excel

Comme le dit le dicton, « une image vaut mille mots », les représentations graphiques ont une importance non négligeable lorsqu’il s’agit de représenter des données. Les graphiques ont suivi une évolution importante, Excel permet d’en créer de nombreux types selon le type de données à représenter et le message que vous souhaitez faire passer.

Dans Excel, les graphiques peuvent être insérés à partir de l’onglet Insertion et sont visibles dans le groupe Graphiques :

images/18SOB01N.png

Lorsque vous avez une série de données à représenter sous forme graphique, vous pouvez choisir le type de graphique. Une fois le graphique créé, il est ensuite possible de le personnaliser en changeant par exemple les couleurs ou les formes des points, des courbes... qui sont visibles.

Hiérarchie des objets Shape, ChartObject et Chart

Lorsque vous travaillez avec des graphiques, Excel considère en réalité plusieurs niveaux d’objets qui représentent chacun une partie de ce que l’utilisateur pourra voir ou manipuler. 

Sans entrer dans les détails techniques, voici une image avec les différents objets au composant un graphique :

images/18SOB02N.png

Le cadre d’ensemble A (ChartObject) est le « récipient » dans lequel se trouvent la zone de traçage du graphique B (PlotArea), le titre du graphique C (ChartTitle) ainsi que sa légende D (Legend).

Selon le type de graphique, d’autres éléments comme les points de courbe ou les axes sont eux aussi représentés par des objets manipulables en VBA.

La couche de dessin : Shape

Que vous utilisiez une forme automatique, un graphique ou une image, le premier niveau sur lequel Excel travaille est un objet Shape. Chaque objet Shape appartient à la collection Shapes, qui se situe dans chaque feuille de votre classeur.

Il est possible à partir de la collection Shapes de créer un graphique.

La feuille de graphique : ChartObject

Lorsque vous créez un graphique, celui-ci se trouve dans un contenant que vous pouvez vous représenter visuellement comme le cadre blanc dans lequel figure le graphique, le titre et la légende. L’ensemble des objets...

Le graphique : Chart

Dans cette section vous allez en apprendre plus sur l’objet Chart, qui représente un graphique quelle que soit sa complexité et qui est manipulable aisément avec VBA.

Collection Charts

Au même titre que l’ensemble des feuilles appartiennent à la collection Worksheets, ou les classeurs appartiennent à la collection Workbooks, les graphiques appartiennent à la collection Charts. À partir de cette collection, vous pouvez créer de nouveaux graphiques ou en ajouter de nouveaux. Il est ainsi possible de connaître le nombre de graphiques à partir de la propriété Count.

Objet Chart

En VBA, un graphique est représenté par un objet Chart. Ce type de données a de nombreuses propriétés et méthodes qui lui sont propres. Les subtilités des graphiques n’étant pas l’objet de cet ouvrage, vous découvrirez les principales méthodes et propriétés vous permettant de personnaliser vos graphiques.

Créer un graphique

Comme c’est le cas pour les autres types d’objets, la première chose à faire avant de pouvoir utiliser une variable, c’est de la déclarer.

Dim cht As Chart 

Exemple 1 : déclaration d’une variable de type Chart

Pour ajouter un nouveau graphique dans votre classeur, il faut passer par la méthode Add de la collection Charts.

Dim cht As Chart 
Set cht = Charts.Add 

Exemple 2 : ajout d’un nouveau graphique

Il existe une autre façon de créer un graphique, que vous verrez plus loin dans ce chapitre. 

Définir une plage de données source : SetSourceData

Une fois que le graphique est créé, vous pouvez préciser la plage de cellules qui servira de source. Cette association se fait au moyen de la méthode SetSourceData. Cette méthode utilise deux paramètres, la syntaxe générale est la suivante :

Chart.SetSourceData(Source,[PlotBy]) 

Exemple 3 : syntaxe générale de la méthode SetSourceData

Le premier paramètre Source est la plage de cellules utilisée...

Utiliser l’Enregistreur de macros pour créer un graphique

Devant la très grande variété d’options qui s’offre à vous lorsqu’il s’agit de créer ou de mettre à jour un graphique, il est recommandé de commencer par utiliser l’Enregistreur de macros pour ensuite décortiquer les différentes lignes de code et adapter selon vos besoins les instructions de votre programme.

En reprenant le cas de la création du graphique basé sur les données de la feuille Exercices_ManipulationFormules, en voulant un graphique de type secteur, voici ce que l’Enregistreur de macros a généré. Les lignes sont commentées pour faciliter la compréhension. 

Sub CreationGraphique() 
   Sheets("Exercices_ManipulationFormules").Activate 
   Range("A1:B6").Select 'sélection de la plage de cellules 
   ActiveSheet.Shapes.AddChart2(251, xlPie).Select 'création 
d'un nouveau graphique et activation du graphique 
   ActiveChart.SetSourceData Source:=Range("Exercices_ManipulationFormules!
$A$1:$B$6") 'déterminer la plage de cellules source 
   ActiveChart.ChartTitle.Text = "Quantité par catégorie" 
'mise à jour du titre du graphique 
End Sub 

Exemple 13 :...

Exercices

 Dans le cadre de ces exercices, créez une nouvelle feuille nommée Exercices_ManipulationGraphes. Dans cette feuille, saisissez les données dans les plages de cellules A1:B5 et D1:E5, comme sur la capture d’écran suivante :

images/18SOB03N2.png

Les exercices suivants vont vous permettre de mieux appréhender la création et la manipulation des graphiques dans votre projet VBA. Vous pouvez si vous le souhaitez utiliser l’Enregistreur de macros pour vous inspirer du code généré automatiquement. Bien que les solutions visuelles ne soient données qu’à titre indicatif, elles vous permettront d’ajuster votre code si nécessaire. Le code générant un graphique se fait par défaut dans la feuille active ; il est donc recommandé d’activer la feuille Exercices_ManipulerGraphiques pour s’assurer que la génération n’aura pas d’impact sur les autres feuilles de votre classeur.

Vous pouvez créer un module spécifique pour ces exercices si vous le souhaitez.

Création simple de graphique

Chiffre d’affaires mensuel

 Créez une macro GraphiqueChiffreAffaires.

Cette macro devra créer un nouveau graphique, de type Courbe, en se basant sur les données situées dans la plage de cellules A1:B5. Le graphique doit représenter l’évolution...