Créer une courbe en cloche, Excel VBA
Créer une courbe en cloche (ou courbe de Gauss) dans Excel à l’aide de VBA implique plusieurs étapes : calcul des valeurs de la distribution normale, création du graphique et ajout des courbes. Voici un code détaillé qui vous guidera à travers ce processus.
Étapes pour créer la courbe en cloche
- Calculer les valeurs de la distribution normale (fonction de densité de probabilité).
- Créer un graphique basé sur ces valeurs.
- Personnaliser le graphique pour afficher une courbe lisse.
Explications du Code VBA
Voici le code VBA détaillé pour générer une courbe en cloche dans Excel :
Sub CreerCourbeEnCloche() ' Définir les paramètres de la courbe normale (moyenne et écart type) Dim moyenne As Double Dim ecartType As Double Dim i As Integer Dim x As Double Dim y As Double Dim nbPoints As Integer Dim debutX As Double Dim finX As Double Dim plageX As Range Dim plageY As Range ' Initialisation des paramètres de la courbe normale moyenne = 0 ' Moyenne de la distribution normale ecartType = 1 ' Ecart-type de la distribution normale nbPoints = 100 ' Nombre de points de données pour la courbe debutX = -5 ' Valeur du début de l'axe X finX = 5 ' Valeur de la fin de l'axe X ' Calculer les valeurs X et Y pour la courbe For i = 1 To nbPoints ' Calcul de la valeur X pour chaque point x = debutX + (finX - debutX) * (i - 1) / (nbPoints - 1) ' Calcul de la valeur Y en fonction de la fonction de densité de probabilité y = (1 / (ecartType * Sqr(2 * WorksheetFunction.Pi()))) * _ Exp(-((x - moyenne) ^ 2) / (2 * ecartType ^ 2)) ' Placer les valeurs dans les cellules Excel (Colonne X et Y) Cells(i, 1).Value = x Cells(i, 2).Value = y Next i ' Définir les plages de données pour le graphique Set plageX = Range(Cells(1, 1), Cells(nbPoints, 1)) Set plageY = Range(Cells(1, 2), Cells(nbPoints, 2)) ' Créer un graphique de type "Nuage de points" (Scatter) Dim graphique As Chart Set graphique = Charts.Add With graphique .ChartType = xlXYScatterSmooth .SetSourceData Source:=plageX .SeriesCollection(1).XValues = plageX .SeriesCollection(1).Values = plageY .HasTitle = True .ChartTitle.Text = "Courbe en Cloche (Distribution Normale)" .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Text = "Valeur X" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Text = "Densité de Probabilité" End With End Sub
Explication du code
1. Définir les paramètres de la courbe :
- moyenne : La moyenne de la distribution normale (0 dans cet exemple).
- ecartType : L’écart-type de la distribution normale (1 dans cet exemple).
- nbPoints : Le nombre de points à calculer pour dessiner la courbe.
- debutX et finX : Les bornes de l’axe X de la courbe (ici de -5 à 5).
2. Calcul des valeurs :
- Pour chaque point, la valeur x est calculée de manière régulière entre debutX et finX.
- La valeur y est ensuite calculée en utilisant la formule de la fonction de densité de probabilité d’une distribution normale :
y=(1 / σ.√(2π)) × exp(−(x − μ)² / 2.σ²)
où :
- μ est la moyenne (0 ici),
- σ est l’écart-type (1 ici).
3. Création du graphique :
- Les valeurs de x et y sont stockées dans les colonnes A et B d’Excel.
- Un graphique de type « Nuage de points lissé » (xlXYScatterSmooth) est créé.
- Les axes sont étiquetés et le titre du graphique est ajouté.
Comment utiliser le code
1. Ouvrir l’éditeur VBA :
- Pressez Alt + F11 pour ouvrir l’éditeur VBA.
2. Créer un nouveau module :
- Dans l’éditeur VBA, allez dans Insertion -> Module.
3. Coller le code :
- Collez le code ci-dessus dans le module.
4. Exécuter la macro :
- Fermez l’éditeur VBA et retournez dans Excel.
- Pressez Alt + F8, sélectionnez CreerCourbeEnCloche, puis cliquez sur Exécuter.
Résultat
Le graphique généré sera une courbe en cloche représentant une distribution normale avec la moyenne égale à 0 et l’écart-type égal à 1. Vous pouvez ajuster les paramètres pour personnaliser la courbe (par exemple, en modifiant la moyenne et l’écart-type).