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.