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, deA1
àD10
).valeurMin
etvaleurMax
: 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 entrevaleurMin
etvaleurMax
. 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 ouRGB(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)
parAddColorScale(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.