Créer un graphique en jauge, Excel VBA

Créer un graphique en jauge, Excel VBA

Voici une explication détaillée et un code VBA pour créer un graphique en jauge dans Excel. Un graphique en jauge simule généralement un compteur avec un fond circulaire (anneau) et une section colorée qui représente une valeur spécifique (par exemple, un pourcentage).
Explication du graphique en jauge :
1. Structure du graphique en jauge :

  • Arrière-plan (anneau extérieur) : Représente la plage complète de valeurs (par exemple, de 0 à 100).
  • Section remplie (anneau intérieur) : Représente la valeur actuelle (par exemple, 70 sur 100).
  • Aiguille (facultative) : Une ligne ou un pointeur qui indique la valeur actuelle.

2. Configuration des données : Vous aurez besoin de données avec la valeur minimale, la valeur actuelle et la valeur maximale. Par exemple :

Catégorie Valeur
Valeur min 0
Valeur actuelle 70
Valeur max 100
Valeur restante 30

Code VBA pour créer un graphique en jauge dynamique :
Voici un code VBA pour créer un graphique en jauge dans Excel. Ce code suppose que vous avez des données dans les cellules A1 à B4.

Sub CreateGaugeChart()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' Changez le nom de votre feuille si nécessaire
    ' Créer un nouveau graphique
    Dim chartObj As ChartObject
    Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=400, Top:=100, Height:=300)
    With chartObj.Chart
        ' Définir le type de graphique en anneau (doughnut)
        .ChartType = xlDoughnut
        ' Définir la source de données
        .SetSourceData Source:=ws.Range("A1:B4")
        ' Ajouter un titre au graphique
        .HasTitle = True
        .ChartTitle.Text = "Graphique en Jauge"
        ' Ajouter une série au graphique pour les segments de la jauge
        With .SeriesCollection.NewSeries
            .XValues = ws.Range("A1:A4") ' Catégories
            .Values = ws.Range("B1:B4") ' Valeurs
            .Name = "Jauge"
        End With
        ' Formater la série pour créer l'effet de jauge
        With .SeriesCollection(1)
            ' Rendre la première section (Valeur min) invisible (arrière-plan)
            .Points(1).Format.Fill.Transparency = 1
            ' Rendre la deuxième section (Valeur actuelle) visible (jauge)
            .Points(2).Format.Fill.ForeColor.RGB = RGB(0, 176, 80) ' Couleur verte pour la jauge
            .Points(2).Format.Fill.Transparency = 0
            ' Rendre la troisième section (Valeur restante) visible (arrière-plan)
            .Points(3).Format.Fill.ForeColor.RGB = RGB(255, 0, 0) ' Couleur rouge pour la valeur restante
            .Points(3).Format.Fill.Transparency = 0
        End With
        ' Ajouter l'aiguille (facultatif)
        Dim needle As Shape
        Set needle = ws.Shapes.AddLine(BeginX:=250, BeginY:=150, EndX:=250, EndY:=100)
        needle.Line.ForeColor.RGB = RGB(255, 255, 255) ' Couleur blanche pour l'aiguille
        needle.Line.Weight = 2
        ' Ajuster l'angle de l'aiguille en fonction de la valeur
        Dim angle As Double
        angle = (ws.Range("B2").Value / ws.Range("B3").Value) * 180 ' Calculer l'angle en fonction de la valeur actuelle
        needle.Rotation = 90 - angle ' Ajuster la rotation pour positionner l'aiguille
    End With
End Sub

Explication détaillée :
1. Création du graphique :

  • La méthode ChartObjects.Add crée un nouveau graphique sur la feuille de calcul. Les propriétés Left, Width, Top, et Height déterminent l’emplacement et la taille du graphique.
  • Le ChartType est défini sur xlDoughnut pour créer un graphique en forme d’anneau. Cela permet de créer l’arrière-plan et les sections remplies.

2. Définition des données :

  • La méthode SetSourceData définit la plage de données pour le graphique. Dans cet exemple, elle fait référence aux cellules A1:B4.
  • Les séries de données sont définies avec les catégories (Valeur min, Valeur actuelle, Valeur max, Valeur restante) et leurs valeurs correspondantes.

3. Formatage du graphique :

  • Chaque section de l’anneau est formatée individuellement avec les propriétés .Points(n).Format.Fill.
  • La transparence de la première section (Valeur min) est définie à 100%, la rendant invisible.
  • La deuxième section (Valeur actuelle) est colorée en vert, et la troisième section (Valeur restante) est colorée en rouge.

4. Aiguille (facultatif) :

  • Une ligne est dessinée pour servir d’aiguille. La méthode Shapes.AddLine crée une ligne au centre du graphique en anneau.
  • L’angle de l’aiguille est calculé en fonction de la valeur actuelle par rapport à la valeur maximale. Cet angle est ensuite utilisé pour faire pivoter l’aiguille à la position correcte.

Personnalisation :

  • Vous pouvez changer les couleurs de la jauge en modifiant les valeurs RGB dans les lignes .Format.Fill.ForeColor.RGB.
  • L’aiguille peut être stylée en ajustant l’épaisseur de la ligne (Line.Weight) et la couleur (Line.ForeColor).
  • La taille et la position du graphique peuvent être modifiées en ajustant les paramètres de ChartObjects.Add.

Conclusion :
Ce code VBA permet de créer un graphique en jauge dynamique dans Excel. En ajustant les données dans les cellules A1:B4, vous pouvez changer l’apparence du graphique pour refléter différentes valeurs. Vous pouvez également personnaliser les couleurs, les styles et les tailles selon vos besoins.

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