Créer des graphiques, Excel VBA
Voici un exemple de code VBA détaillé pour créer des graphiques dans Excel, avec des explications à chaque étape.
Objectif du Code :
Ce code crée un graphique simple à partir des données d’une feuille de calcul Excel, personnalise l’apparence du graphique, et vous permet d’ajuster les éléments du graphique comme les titres, les axes, et les couleurs.
Code VBA pour Créer un Graphique :
Sub CreerGraphique() ' Déclare les variables pour la feuille et le graphique Dim ws As Worksheet Dim chartObj As ChartObject Dim rangeData As Range ' Affecter la feuille de calcul active à la variable ws Set ws = ActiveSheet ' Définir la plage de données pour le graphique (par exemple A1:B10) Set rangeData = ws.Range("A1:B10") ' Créer un objet graphique dans la feuille de calcul (position 100x100, taille 400x300) Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=400, Top:=100, Height:=300) ' Affecter les données à ce graphique chartObj.Chart.SetSourceData Source:=rangeData ' Définir le type de graphique (par exemple un graphique en colonnes) chartObj.Chart.ChartType = xlColumnClustered ' Personnaliser le titre du graphique chartObj.Chart.HasTitle = True chartObj.Chart.ChartTitle.Text = "Graphique des Ventes" ' Personnaliser le titre de l'axe X (horizontal) chartObj.Chart.Axes(xlCategory, xlPrimary).HasTitle = True chartObj.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Mois" ' Personnaliser le titre de l'axe Y (vertical) chartObj.Chart.Axes(xlValue, xlPrimary).HasTitle = True chartObj.Chart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Ventes en $" ' Changer la couleur des colonnes du graphique With chartObj.Chart.SeriesCollection(1) .Interior.Color = RGB(0, 112, 192) ' Couleur bleue End With ' Ajouter une légende (optionnel) chartObj.Chart.HasLegend = True chartObj.Chart.Legend.Position = xlLegendPositionBottom ' Mettre à jour la feuille de calcul ws.Activate End Sub
Explications du Code :
1. Déclaration des Variables :
Dim ws As Worksheet Dim chartObj As ChartObject Dim rangeData As Range
- ws : Une variable représentant la feuille de calcul où le graphique sera ajouté.
- chartObj : Une variable pour le graphique lui-même.
- rangeData : La plage de cellules contenant les données à afficher dans le graphique.
2. Sélection de la Feuille de Calcul Active :
Set ws = ActiveSheet
Cette ligne affecte la feuille active à la variable ws. Cela signifie que le graphique sera ajouté sur la feuille que vous utilisez au moment de l’exécution du code.
3. Définition de la Plage de Données :
Set rangeData = ws.Range("A1:B10")
La plage des données que vous souhaitez inclure dans le graphique est spécifiée ici. Cette plage doit contenir des valeurs pour les axes X et Y du graphique.
4. Création de l’Objet Graphique :
Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=400, Top:=100, Height:=300)
Cette ligne crée un graphique sur la feuille de calcul à une position spécifique (100 pixels à gauche, 100 pixels en haut) et avec des dimensions de 400 x 300 pixels.
5. Source des Données pour le Graphique :
chartObj.Chart.SetSourceData Source:=rangeData
Le graphique est lié à la plage de données spécifiée précédemment, de sorte qu’il affichera les valeurs contenues dans rangeData.
6. Définition du Type de Graphique :
chartObj.Chart.ChartType = xlColumnClustered
Cette ligne définit le type de graphique. Ici, il s’agit d’un graphique en colonnes groupées (xlColumnClustered). Vous pouvez changer le type de graphique en modifiant cette ligne (par exemple, pour un graphique linéaire, vous pouvez utiliser xlLine).
7. Personnalisation du Titre du Graphique :
chartObj.Chart.HasTitle = True chartObj.Chart.ChartTitle.Text = "Graphique des Ventes"
Cette section active le titre du graphique et lui donne le texte « Graphique des Ventes ». Vous pouvez personnaliser ce titre en fonction de vos besoins.
8. Personnalisation des Titres des Axes :
chartObj.Chart.Axes(xlCategory, xlPrimary).HasTitle = True chartObj.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Mois" chartObj.Chart.Axes(xlValue, xlPrimary).HasTitle = True chartObj.Chart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Ventes en $"
Ces lignes ajoutent des titres aux axes du graphique :
- L’axe des X (catégorie) a pour titre « Mois ».
- L’axe des Y (valeur) a pour titre « Ventes en $ ».
9. Personnalisation des Couleurs :
With chartObj.Chart.SeriesCollection(1) .Interior.Color = RGB(0, 112, 192) ' Couleur bleue End With
Cette section change la couleur des colonnes du graphique en bleu (utilisation de la fonction RGB).
10. Ajouter une Légende :
chartObj.Chart.HasLegend = True chartObj.Chart.Legend.Position = xlLegendPositionBottom
La légende est activée et positionnée en bas du graphique. Si vous ne souhaitez pas de légende, vous pouvez désactiver cette option en mettant HasLegend = False.
11. Finalisation et Actualisation : ws.Activate
. Cette ligne réactive la feuille de calcul après la création du graphique, ce qui vous permet de voir immédiatement le graphique dans votre fenêtre Excel.
Conclusion :
Ce code crée un graphique simple en utilisant VBA, mais il peut être facilement personnalisé pour répondre à vos besoins spécifiques. Vous pouvez changer la plage de données, le type de graphique, les couleurs, les titres et plus encore.