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 :
- Ouvrez Excel et appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
- Cliquez sur Insertion puis Module pour créer un nouveau module.
- Copiez et collez le code VBA dans ce module.
- Fermez l’éditeur VBA et retournez à votre feuille Excel.
- 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.