Calculer les quartiles, Excel VBA

Calculer les quartiles, Excel VBA

Voici un exemple détaillé de code VBA pour calculer les quartiles dans Excel. 

Objectif : 

Calculer les quartiles (Q1, Q2 (médiane), Q3) d’une plage de données donnée. Le code prendra en entrée une plage de cellules et retournera les trois quartiles. 

Explication des quartiles : 

  • Q1 (Premier quartile) : La médiane de la première moitié des données (25% des valeurs). 
  • Q2 (Médiane) : La médiane de l’ensemble des données (50% des valeurs). 
  • Q3 (Troisième quartile) : La médiane de la deuxième moitié des données (75% des valeurs). 

Code VBA détaillé :

Sub CalculerQuartiles() 
    ' Déclaration des variables 
    Dim Plage As Range 
    Dim Donnees() As Double 
    Dim Q1 As Double 
    Dim Q2 As Double 
    Dim Q3 As Double 
    Dim i As Integer 
    ' Sélectionner la plage de données 
    On Error Resume Next 
    Set Plage = Application.InputBox("Sélectionnez la plage de données", Type:=8) 
    On Error GoTo 0 
    ' Vérification de la plage sélectionnée 
    If Plage Is Nothing Then 
        MsgBox "Aucune plage sélectionnée. Le processus est annulé.", vbCritical 
        Exit Sub 
    End If 
    ' Vérifier si la plage contient des valeurs numériques 
    If WorksheetFunction.Count(Plage) = 0 Then 
        MsgBox "La plage sélectionnée ne contient pas de valeurs numériques.", vbCritical 
        Exit Sub 
    End If 
    ' Copier les données de la plage dans un tableau 
    ReDim Donnees(1 To Plage.Cells.Count) 
    For i = 1 To Plage.Cells.Count 
        Donnees(i) = Plage.Cells(i).Value 
    Next i 
    ' Trier les données 
    Call TrierTableau(Donnees) 
    ' Calcul des quartiles 
    Q1 = CalculerQuartile(Donnees, 0.25) 
    Q2 = CalculerQuartile(Donnees, 0.50) 
    Q3 = CalculerQuartile(Donnees, 0.75) 
    ' Affichage des résultats 
    MsgBox "Premier quartile (Q1) : " & Q1 & vbCrLf & _ 
           "Médiane (Q2) : " & Q2 & vbCrLf & _ 
           "Troisième quartile (Q3) : " & Q3, vbInformation 
End Sub 
' Fonction pour trier le tableau en ordre croissant 
Sub TrierTableau(ByRef Tableau() As Double) 
    Dim i As Integer, j As Integer 
    Dim Temp As Double 
    For i = LBound(Tableau) To UBound(Tableau) - 1 
        For j = i + 1 To UBound(Tableau) 
            If Tableau(i) > Tableau(j) Then 
                Temp = Tableau(i) 
                Tableau(i) = Tableau(j) 
                Tableau(j) = Temp 
            End If 
        Next j 
    Next i 
End Sub 
' Fonction pour calculer le quartile donné un pourcentage (p) 
Function CalculerQuartile(ByRef Tableau() As Double, p As Double) As Double 
    Dim N As Integer 
    Dim Position As Double 
    Dim IndexInf As Integer 
    Dim IndexSup As Integer 
    Dim ValeurInf As Double 
    Dim ValeurSup As Double 
    N = UBound(Tableau) - LBound(Tableau) + 1 
    Position = p * (N + 1) 
    ' Si la position est un entier, c'est la valeur à cette position 
    If Position = Int(Position) Then 
        CalculerQuartile = Tableau(Position) 
    Else 
        ' Sinon, interpolation entre les deux valeurs adjacentes 
        IndexInf = Int(Position) 
        IndexSup = IndexInf + 1 
        ValeurInf = Tableau(IndexInf) 
        ValeurSup = Tableau(IndexSup) 
        ' Interpolation linéaire 
        CalculerQuartile = ValeurInf + (Position - IndexInf) * (ValeurSup - ValeurInf)
    End If 
End Function

Explication du code : 

1. Variables et plage de données

  • La variable Plage permet à l’utilisateur de sélectionner une plage de données dans la feuille Excel. 
  • Si la plage sélectionnée contient des valeurs numériques, le programme poursuit, sinon il affiche un message d’erreur. 

2. Collecte des données dans un tableau

  • Les données de la plage sont copiées dans un tableau Donnees(). 

3. Tri des données

  • Les données sont triées par ordre croissant dans le tableau via la procédure TrierTableau. 

4. Calcul des quartiles

  • La fonction CalculerQuartile est utilisée pour calculer les quartiles Q1, Q2 (médiane) et Q3. Cette fonction calcule la position du quartile à partir du pourcentage (p), puis effectue une interpolation linéaire si la position n’est pas un entier. 

5. Affichage des résultats

  • Une boîte de message affiche les trois quartiles calculés. 

Comment utiliser ce code : 

  1. Ouvrez Excel et appuyez sur Alt + F11 pour ouvrir l’éditeur VBA. 
  2. Cliquez sur Insertion puis Module pour créer un nouveau module. 
  3. Copiez et collez le code VBA dans ce module. 
  4. Fermez l’éditeur VBA et retournez à votre feuille Excel. 
  5. Vous pouvez exécuter la macro en appuyant sur Alt + F8, sélectionnant CalculerQuartiles et en cliquant sur « Exécuter ». 

Cela ouvrira une boîte de dialogue pour sélectionner la plage de données et affichera les résultats des quartiles dans une boîte de message. 

Personnalisation : 

  • Vous pouvez adapter ce code pour calculer d’autres mesures statistiques ou l’étendre pour gérer des données plus complexes. 
Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x