Guide VBA sur les Diagrammes et les Graphiques
In this Article
- Création d’un Graphique Intégré à l’Aide de VBA
- Spécification d’un Type de Graphique à l’Aide de VBA
- Ajout d’un Titre de Graphique à l’Aide de VBA
- Modification de la Couleur d’Arrière-Plan du Graphique à l’Aide de VBA
- Modification de la Couleur de la Zone de Tracé du Graphique à l’Aide de VBA
- Ajout d’une Légende à l’Aide de VBA
- Ajouter des Étiquettes de Données à l’Aide de VBA
- Ajout d’un Axe X et d’un Titre en VBA
- Ajout d’un axe Y et d’un titre en VBA
- Modification du Format des Chiffres d’un Axe
- Modification du Formatage de la Police dans un Graphique
- Suppression d’un Graphique à l’Aide de VBA
- Référence à la Collection ChartObjects
- Insertion d’un Graphique sur sa Propre Feuille de Graphique
Les diagrammes et les graphiques d’Excel sont utilisés pour afficher visuellement des données. Dans ce tutoriel, nous allons voir comment utiliser VBA pour créer et manipuler des diagrammes et des éléments de diagramme
Vous pouvez créer des graphiques intégrés dans une feuille de calcul ou des graphiques sur leur propre feuille de calcul dédiée.
Création d’un Graphique Intégré à l’Aide de VBA
Nous disposons de la plage A1:B4 qui contient les données sources, illustrées ci-dessous :
Vous pouvez créer un graphique en utilisant la méthode ChartObjects.Add. Le code suivant va créer un graphique intégré à la feuille de calcul :
Sub CréationGraphiqueIntégréAvecChartObject()
Dim graphiqueIntégré As ChartObject
Set graphiqueIntégré = Sheets("Feuil1").ChartObjects.Add(Left:=180, Width:=300, Top:=7, Height:=200)
graphiqueIntégré.Chart.SetSourceData Source:=Sheets("Feuil1").Range("A1:B4")
End Sub
Le résultat est le suivant :
Vous pouvez également créer un graphique en utilisant la méthode Shapes.AddChart. Le code suivant va créer un graphique intégré à la feuille de calcul :
Sub CréationGraphiqueIntégréAvecObjetShapes()
Dim graphiqueIntégré As Shape
Set graphiqueIntégré = Sheets("Feuil1").Shapes.AddChart
graphiqueIntégré.Chart.SetSourceData Source:=Sheets("Feuil1").Range("A1:B4")
End Sub
Spécification d’un Type de Graphique à l’Aide de VBA
Nous avons la plage A1:B5 qui contient les données source, comme indiqué ci-dessous :
Vous pouvez spécifier un type de graphique en utilisant la propriété ChartType. Le code suivant créera un graphique circulaire sur la feuille de calcul puisque la propriété ChartType a été définie sur xlPie :
Sub SpécifierUnTypeDeGraphique()
Dim graph As ChartObject
Set graph = Sheets("Feuil1").ChartObjects.Add(Left:=180, Width:=270, Top:=7, Height:=210)
graph.Chart.SetSourceData Source:=Sheets("Feuil1").Range("A1:B5")
graph.Chart.ChartType = xlPie
End Sub
Le résultat est le suivant :
Voici quelques-uns des types de graphiques les plus populaires qui sont généralement spécifiés, mais il en existe d’autres :
- xlArea
- xlPie
- xlLine
- xlRadar
- xlXYScatter
- xlSurface
- xlBubble
- xlBarClustered
- xlColumnClustered
Ajout d’un Titre de Graphique à l’Aide de VBA
Nous avons sélectionné un graphique dans la feuille de calcul comme indiqué ci-dessous :
Vous devez d’abord ajouter un titre au graphique en utilisant la méthode Chart.SetElement, puis spécifier le texte du titre du graphique en définissant la propriété ChartTitle.Text.
Le code suivant vous montre comment ajouter un titre de graphique et spécifier le texte du titre du graphique actif :
Sub AjouterEtDéfinirUnTitreDeGraphique()
ActiveChart.SetElement (msoElementChartTitleAboveChart)
ActiveChart.ChartTitle.Text = "Les Ventes du Produit"
End Sub
Le résultat est le suivant :
Remarque : vous devez d’abord sélectionner le graphique pour en faire le graphique actif afin de pouvoir utiliser l’objet ActiveChart dans votre code.
Modification de la Couleur d’Arrière-Plan du Graphique à l’Aide de VBA
Nous avons sélectionné un graphique dans la feuille de calcul, comme indiqué ci-dessous :
Vous pouvez modifier la couleur de fond de l’ensemble du graphique en définissant la propriété RGB de l’objet FillFormat contenu dans l’objet ChartArea. Le code suivant donne au graphique une couleur d’arrière-plan orange clair :
Sub AjouteUneCouleurArrièrePlanCharteActive()
ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB(253, 242, 227)
End Sub
Le résultat est le suivant :
Vous pouvez également modifier la couleur de fond de l’ensemble du graphique en définissant la propriété ColorIndex de l’objet Interior de l’objet ChartArea. Le code suivant donne au graphique une couleur d’arrière-plan orange :
Sub AjouteUneCouleurIntérieureCharteActive()
ActiveChart.ChartArea.Interior.ColorIndex = 40
End Sub
Le résultat est le suivant :
Remarque : la propriété ColorIndex vous permet de spécifier une couleur en fonction d’une valeur comprise entre 1 et 56, tirée de la palette prédéfinie. Pour voir quelles valeurs représentent les différentes couleurs, cliquez ici.
Modification de la Couleur de la Zone de Tracé du Graphique à l’Aide de VBA
Nous avons sélectionné un graphique dans la feuille de calcul comme indiqué ci-dessous :
Vous pouvez modifier la couleur de fond de la zone de tracé du graphique seulement en définissant la propriété RGB de l’objet FillFormat contenu dans l’objet PlotArea. Le code suivant donne à la zone de tracé du graphique une couleur de fond vert clair :
Sub AjouteUneCouleurZoneTracéCharteActive()
ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB(208, 254, 202)
End Sub
Le résultat est le suivant :
Ajout d’une Légende à l’Aide de VBA
Nous avons sélectionné un graphique dans la feuille de calcul, comme indiqué ci-dessous :
Vous pouvez ajouter une légende à l’aide de la méthode Chart.SetElement. Le code suivant ajoute une légende à la gauche du graphique :
Sub AjouterUneLégende()
ActiveChart.SetElement (msoElementLegendLeft)
End Sub
Le résultat est le suivant :
Vous pouvez spécifier la position de la légende de la manière suivante :
- msoElementLegendLeft – affiche la légende sur le côté gauche du graphique.
- msoElementLegendLeftOverlay – superpose la légende sur le côté gauche du graphique.
- msoElementLegendRight – affiche la légende sur le côté droit du graphique.
- msoElementLegendRightOverlay – superpose la légende sur le côté droit du graphique.
- msoElementLegendBottom – affiche la légende au bas du graphique.
- msoElementLegendTop – affiche la légende en haut du graphique.
Ajouter des Étiquettes de Données à l’Aide de VBA
Nous avons sélectionné un graphique dans la feuille de calcul, comme illustré ci-dessous :
Vous pouvez ajouter des étiquettes de données à l’aide de la méthode Chart.SetElement. Le code suivant ajoute des étiquettes de données à l’extrémité intérieure du graphique :
Sub AjouterÉtiquettesDonnées()
ActiveChart.SetElement msoElementDataLabelInsideEnd
End Sub
Le résultat est le suivant :
Vous pouvez spécifier le positionnement des étiquettes de données de la manière suivante :
- msoElementDataLabelShow – affiche les étiquettes de données.
- msoElementDataLabelRight – affiche les étiquettes de données à droite du graphique.
- msoElementDataLabelLeft – affiche les étiquettes de données à gauche du graphique.
- msoElementDataLabelTop – affiche les étiquettes de données en haut du graphique.
- msoElementDataLabelBestFit – détermine le meilleur ajustement.
- msoElementDataLabelBottom – affiche les étiquettes de données en bas du graphique.
- msoElementDataLabelCallout – affiche les étiquettes de données sous forme de texte.
- msoElementDataLabelCenter – affiche les étiquettes de données au centre.
- msoElementDataLabelInsideBase – affiche les étiquettes de données sur la base intérieure.
- msoElementDataLabelOutSideEnd – affiche les étiquettes de données à l’extrémité extérieure du graphique.
- msoElementDataLabelInsideEnd – affiche les étiquettes de données à l’extrémité intérieure du graphique.
Ajout d’un Axe X et d’un Titre en VBA
Nous avons sélectionné un graphique dans la feuille de calcul, comme illustré ci-dessous :
Vous pouvez ajouter un axe des X et un titre d’axe des X à l’aide de la méthode Chart.SetElement. Le code suivant ajoute un axe des X et un titre d’axe des X au graphique :
Sub AjouterAxeXetTitreX()
With ActiveChart
.SetElement msoElementPrimaryCategoryAxisShow
.SetElement msoElementPrimaryCategoryAxisTitleHorizontal
End With
End Sub
Le résultat est le suivant :
Ajout d’un axe Y et d’un titre en VBA
Nous avons sélectionné un graphique dans la feuille de calcul, comme indiqué ci-dessous :
Vous pouvez ajouter un axe des Y et un titre d’axe des Y en utilisant la méthode Chart.SetElement. Le code suivant ajoute un axe des Y et un titre d’axe des Y au graphique :
Sub AjouterAxeYetTitreY()
With ActiveChart
.SetElement msoElementPrimaryValueAxisShow
.SetElement msoElementPrimaryValueAxisTitleHorizontal
End With
End Sub
Le résultat est le suivant :
Modification du Format des Chiffres d’un Axe
Nous avons sélectionné un graphique dans la feuille de calcul, comme indiqué ci-dessous :
Vous pouvez modifier le format numérique d’un axe. Le code suivant change le format des chiffres de l’axe des ordonnées en devise :
Sub ChangerLeFormatNumériqueAxe()
ActiveChart.Axes(xlValue).TickLabels.NumberFormat = "$#,##0.00"
End Sub
Le résultat est le suivant :
Modification du Formatage de la Police dans un Graphique
Nous avons sélectionné le graphique suivant dans la feuille de calcul comme indiqué ci-dessous :
Vous pouvez modifier le formatage de la police de l’ensemble du graphique, en vous référant à l’objet police et en modifiant son nom, son poids et sa taille. Le code suivant modifie le type, le poids et la taille de la police de l’ensemble du graphique.
Sub ModifierLeFormatDePoliceDuGraphique()
With ActiveChart
.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman"
.ChartArea.Format.TextFrame2.TextRange.Font.Bold = True
.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14
End With
End Sub
Le résultat est le suivant :
Suppression d’un Graphique à l’Aide de VBA
Nous avons sélectionné un graphique dans la feuille de calcul, comme indiqué ci-dessous :
Nous pouvons utiliser le code suivant pour supprimer ce graphique :
Sub SuppressionGraphiqueActif()
ActiveChart.Parent.Delete
End Sub
Référence à la Collection ChartObjects
Vous pouvez accéder à tous les graphiques intégrés dans votre feuille de calcul ou votre classeur en vous référant à la collection ChartObjects. Nous avons deux graphiques sur la même feuille, comme indiqué ci-dessous :
Nous allons nous référer à la collection ChartObjects afin de donner aux deux graphiques de la feuille de calcul la même hauteur, la même largeur, supprimer les lignes de la grille, donner la même couleur à l’arrière-plan, donner la même couleur à la zone de tracé et donner la même couleur aux lignes de la zone de tracé :
Sub RéférerÀTousLesGraphiquesDeLaFeuille()
Dim graph As ChartObject
For Each graph In ActiveSheet.ChartObjects
graph.Height = 144.85
graph.Width = 246.61
graph.Chart.Axes(xlValue).MajorGridlines.Delete
graph.Chart.PlotArea.Format.Fill.ForeColor.RGB = RGB(242, 242, 242)
graph.Chart.ChartArea.Format.Fill.ForeColor.RGB = RGB(234, 234, 234)
graph.Chart.PlotArea.Format.Line.ForeColor.RGB = RGB(18, 97, 172)
Next graph
End Sub
Le résultat est le suivant :
Insertion d’un Graphique sur sa Propre Feuille de Graphique
Nous avons la plage A1:B6 qui contient les données sources, montrées ci-dessous :
Vous pouvez créer un graphique en utilisant la méthode Charts.Add. Le code suivant va créer un graphique sur sa propre feuille de graphique :
Sub InsérerGraphiqueSurUneFeuilleDédiée()
Sheets("Feuil1").Range("A1:B6").Select
Charts.Add
End Sub
Le résultat est le suivant :
Consultez nos autres tutoriels sur les graphiques : Graphiques dans Excel Créer un graphique à barres en VBA