Créer un graphique en boîte à moustaches, Excel VBA

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

  1. Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA. 
  2. Dans le menu Insertion, sélectionnez Module pour créer un nouveau module. 
  3. 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 : 

  1. Entrez vos données dans la colonne A de la feuille active (par exemple, A2:A101). 
  2. Appuyez sur Alt + F8, sélectionnez CreerGraphiqueBoiteAMoustaches, puis cliquez sur Exécuter. 
  3. 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. 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x