Créer une heatmap (carte thermique), Excel VBA

Créer une heatmap (carte thermique), Excel VBA

Voici un code détaillé pour créer une heatmap (carte thermique) dans Excel en utilisant VBA, accompagné d’explications détaillées.
Code VBA pour créer une Heatmap

Sub CreerHeatmap()
    ' Déclarer les variables
    Dim ws As Worksheet
    Dim plageDonnees As Range
    Dim valeurMin As Double, valeurMax As Double
    Dim cellule As Range
    ' Définir la feuille cible
    Set ws = ThisWorkbook.Sheets("Feuille1")  ' Modifiez le nom de la feuille selon votre besoin
    ' Définir la plage de données pour la heatmap (par exemple, A1 à D10)
    Set plageDonnees = ws.Range("A1:D10")  ' Ajustez la plage selon vos besoins
    ' Trouver les valeurs minimales et maximales dans la plage
    valeurMin = Application.WorksheetFunction.Min(plageDonnees)
    valeurMax = Application.WorksheetFunction.Max(plageDonnees)
    ' Effacer toute mise en forme existante
    plageDonnees.FormatConditions.Delete
    ' Appliquer un dégradé de couleurs à la plage de données (Heatmap)
    With plageDonnees.FormatConditions.AddColorScale(3)
        ' Appliquer un dégradé à 3 couleurs
        With .ColorScaleCriteria(1)
            .Type = xlConditionValueNumber
            .Value = valeurMin
            .FormatColor.Color = RGB(255, 255, 255)  ' Blanc (valeur basse)
        End With
        With .ColorScaleCriteria(2)
            .Type = xlConditionValueNumber
            .Value = (valeurMax + valeurMin) / 2
            .FormatColor.Color = RGB(255, 255, 0)  ' Jaune (valeur intermédiaire)
        End With
        With .ColorScaleCriteria(3)
            .Type = xlConditionValueNumber
            .Value = valeurMax
            .FormatColor.Color = RGB(0, 255, 0)  ' Vert (valeur haute)
        End With
    End With
End Sub

Explication du Code
1. Variables :

  • ws : Cette variable représente la feuille de calcul sur laquelle la heatmap sera appliquée.
  • plageDonnees : Cette variable définit la plage de cellules où la heatmap sera appliquée (par exemple, de A1 à D10).
  • valeurMin et valeurMax : Ces variables contiennent les valeurs minimales et maximales trouvées dans la plage de données sélectionnée.

2. Définition de la feuille et de la plage de données :

  • Set ws = ThisWorkbook.Sheets("Feuille1") : Cette ligne définit la feuille de calcul sur laquelle la heatmap sera créée. Modifiez "Feuille1" par le nom de votre feuille.
  • Set plageDonnees = ws.Range("A1:D10") : Cela définit la plage de données qui sera utilisée pour créer la heatmap. Vous pouvez ajuster cette plage en fonction de vos besoins.

3. Calcul des valeurs min et max :

  • valeurMin = Application.WorksheetFunction.Min(plageDonnees) : Cette ligne calcule la valeur minimale dans la plage de données sélectionnée.
  • valeurMax = Application.WorksheetFunction.Max(plageDonnees) : Cette ligne calcule la valeur maximale dans la plage de données sélectionnée.

4. Suppression de la mise en forme existante :

  • plageDonnees.FormatConditions.Delete : Cette ligne efface toute mise en forme conditionnelle préexistante dans la plage, afin de pouvoir appliquer une nouvelle heatmap sans interférence.

5. Application de la mise en forme conditionnelle (dégradé de couleurs) :

  • With plageDonnees.FormatConditions.AddColorScale(3) : Cette ligne applique un dégradé de couleurs avec trois couleurs.
  • Les critères .ColorScaleCriteria(n) définissent les points de la mise en forme conditionnelle pour les valeurs minimales, intermédiaires et maximales.
  • .ColorScaleCriteria(1) : Définit la couleur pour la valeur la plus basse (valeurMin). Ici, la couleur est définie sur blanc (RGB(255, 255, 255)).
  • .ColorScaleCriteria(2) : Définit la couleur pour la valeur intermédiaire, qui est la moyenne entre valeurMin et valeurMax. Cette couleur est définie sur jaune (RGB(255, 255, 0)).
  • .ColorScaleCriteria(3) : Définit la couleur pour la valeur la plus élevée (valeurMax). Ici, la couleur est verte (RGB(0, 255, 0)).

6. Exécution du Code :

  • Lorsque vous exécutez la subroutine CreerHeatmap, les cellules dans la plage de données spécifiée seront colorées en fonction de leurs valeurs, avec les valeurs les plus faibles en blanc, les valeurs moyennes en jaune et les valeurs les plus élevées en vert, créant ainsi un effet de heatmap.

Personnalisation du Code

  • Plage personnalisée : Modifiez Set plageDonnees = ws.Range("A1:D10") pour cibler une plage différente, par exemple une plage plus grande ou plus petite.
  • Personnalisation des couleurs : Vous pouvez modifier les valeurs RGB pour changer les couleurs. Par exemple, utilisez RGB(255, 0, 0) pour rouge ou RGB(0, 0, 255) pour bleu.
  • Type de dégradé : Si vous souhaitez utiliser un dégradé à deux couleurs au lieu de trois, remplacez AddColorScale(3) par AddColorScale(2) et définissez seulement deux critères de couleur.

Ce code vous permet de visualiser efficacement les tendances de vos données en utilisant des dégradés de couleurs, ce qui est très utile pour mettre en évidence les valeurs faibles, moyennes et élevées d’un ensemble de données.

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