Créer un graphique en boîte à moustaches, Excel VBA
Créer un graphique en boîte à moustaches (boxplot) dans Excel à l’aide de VBA nécessite plusieurs étapes, car Excel ne permet pas directement de créer un boxplot via ses fonctionnalités standard sans passer par des étapes supplémentaires de calcul des données. Le graphique en boîte à moustaches permet de visualiser la distribution des données en fonction des quartiles, des médianes et des valeurs aberrantes.
Voici un code détaillé en VBA pour créer un graphique en boîte à moustaches dans Excel avec des explications pour chaque étape.
Objectif:
Le code prend une plage de données, calcule les valeurs nécessaires pour le graphique en boîte à moustaches (minimum, premier quartile, médiane, troisième quartile, maximum) et crée un graphique à partir de ces valeurs.
1. Préparer les données
Avant de commencer à coder, vous devez avoir des données dans une colonne d’Excel. Disons que vos données se trouvent dans la colonne A de la feuille de calcul.
2. Créer un module VBA
- Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
- Dans le menu Insertion, sélectionnez Module pour créer un nouveau module.
- Copiez le code suivant dans ce module.
Code VBA pour créer un graphique en boîte à moustaches
Sub CreerGraphiqueBoiteAMoustaches()
Dim ws As Worksheet
Dim donnees As Range
Dim Min As Double, Q1 As Double, Median As Double, Q3 As Double, Max As Double
Dim BoxChart As ChartObject
Dim TableauCalculs As Range
Dim SerieData As Range
' Définir la feuille de calcul active
Set ws = ActiveSheet
' Définir la plage de données (ex. A2:A101)
Set donnees = ws.Range("A2:A101")
' Calculer les valeurs nécessaires pour la boîte à moustaches
Min = Application.WorksheetFunction.Min(donnees)
Q1 = Application.WorksheetFunction.Quartile_Inc(donnees, 1)
Median = Application.WorksheetFunction.Median(donnees)
Q3 = Application.WorksheetFunction.Quartile_Inc(donnees, 3)
Max = Application.WorksheetFunction.Max(donnees)
' Insérer un tableau temporaire pour contenir les résultats
Set TableauCalculs = ws.Range("C2:C6")
TableauCalculs.Cells(1, 1).Value = Min
TableauCalculs.Cells(2, 1).Value = Q1
TableauCalculs.Cells(3, 1).Value = Median
TableauCalculs.Cells(4, 1).Value = Q3
TableauCalculs.Cells(5, 1).Value = Max
' Créer un graphique en boîte à moustaches
Set BoxChart = ws.ChartObjects.Add(Left:=300, Width:=400, Top:=100, Height:=300)
BoxChart.Chart.ChartType = xlColumnClustered
' Ajouter les séries de données
BoxChart.Chart.SeriesCollection.NewSeries
BoxChart.Chart.SeriesCollection(1).XValues = Array("Min", "Q1", "Médiane", "Q3", "Max")
BoxChart.Chart.SeriesCollection(1).Values = TableauCalculs
' Ajouter un titre au graphique
BoxChart.Chart.HasTitle = True
BoxChart.Chart.ChartTitle.Text = "Graphique en boîte à moustaches"
' Personnaliser le graphique (cacher les barres de colonne)
BoxChart.Chart.SeriesCollection(1).Format.Fill.Visible = msoFalse
BoxChart.Chart.SeriesCollection(1).Format.Line.Visible = msoFalse
' Ajouter un graphique en ligne pour relier les points
BoxChart.Chart.SeriesCollection.NewSeries
BoxChart.Chart.SeriesCollection(2).XValues = Array("Min", "Q1", "Médiane", "Q3", "Max")
BoxChart.Chart.SeriesCollection(2).Values = TableauCalculs
BoxChart.Chart.SeriesCollection(2).ChartType = xlLine
BoxChart.Chart.SeriesCollection(2).Format.Line.Color = RGB(0, 0, 0)
' Afficher des points spécifiques pour les valeurs min, q1, médiane, q3 et max
BoxChart.Chart.SeriesCollection(2).Points(1).MarkerStyle = xlMarkerStyleCircle
BoxChart.Chart.SeriesCollection(2).Points(1).MarkerSize = 8
BoxChart.Chart.SeriesCollection(2).Points(1).MarkerBackgroundColor = RGB(0, 0, 255)
BoxChart.Chart.SeriesCollection(2).Points(2).MarkerStyle = xlMarkerStyleCircle
BoxChart.Chart.SeriesCollection(2).Points(2).MarkerSize = 8
BoxChart.Chart.SeriesCollection(2).Points(2).MarkerBackgroundColor = RGB(0, 255, 0)
BoxChart.Chart.SeriesCollection(2).Points(3).MarkerStyle = xlMarkerStyleCircle
BoxChart.Chart.SeriesCollection(2).Points(3).MarkerSize = 8
BoxChart.Chart.SeriesCollection(2).Points(3).MarkerBackgroundColor = RGB(255, 0, 0)
' Nettoyer le tableau de calcul temporaire
TableauCalculs.ClearContents
End Sub
Explication du code :
1. Définition des variables :
- ws : la feuille de travail active.
- donnees : la plage de données à partir de laquelle on veut créer le boxplot.
- Min, Q1, Median, Q3, Max : les valeurs statistiques nécessaires pour le boxplot.
- BoxChart : un objet graphique pour créer le boxplot.
- TableauCalculs : une plage temporaire pour stocker les résultats du calcul.
2. Calcul des valeurs nécessaires :
- Utilisation des fonctions VBA Application.WorksheetFunction.Min, Quartile_Inc, Median et Max pour calculer les valeurs de la boîte à moustaches.
3. Création du graphique :
- Création d’un graphique de type xlColumnClustered pour afficher les valeurs sous forme de colonnes (qui représenteront la boxplot).
- Ajout de séries de données pour chaque quartile et les valeurs minimum/maximum.
4. Personnalisation du graphique :
- Masquage des barres de colonne (car on veut uniquement les lignes).
- Ajout d’une série de type xlLine pour relier les points et afficher les différentes valeurs (Min, Q1, Median, Q3, Max).
- Personnalisation des marqueurs (points) pour chaque quartile et les valeurs.
5. Nettoyage :
- Suppression des données temporaires après avoir créé le graphique.
Comment exécuter le code :
- Entrez vos données dans la colonne A de la feuille active (par exemple, A2:A101).
- Appuyez sur Alt + F8, sélectionnez CreerGraphiqueBoiteAMoustaches, puis cliquez sur Exécuter.
- Un graphique apparaîtra sur la feuille avec le boxplot basé sur vos données.
Personnalisation :
Vous pouvez ajuster les couleurs, les tailles des marqueurs et la position du graphique en modifiant les paramètres dans le code. Si vous souhaitez afficher des valeurs supplémentaires ou personnaliser davantage le graphique, vous pouvez aussi ajouter d’autres éléments à l’aide de la propriété Chart de l’objet graphique.