Créer un graphique de type heatmap (carte thermique), Excel VBA
Voici un code VBA détaillé pour créer un graphique de type heatmap (carte thermique) dans Excel. Une heatmap est souvent créée en utilisant un formatage conditionnel ou une échelle de couleurs, mais vous pouvez également le faire de manière programmatique avec VBA. Ci-dessous, je vais vous expliquer les étapes et vous fournir le code détaillé.
Code VBA pour Créer une Heatmap
Ce code suppose que vous avez des données dans une feuille de calcul et que vous souhaitez créer une heatmap basée sur ces données.
Sub CreateHeatmap()
Dim ws As Worksheet
Dim dataRange As Range
Dim chartObj As ChartObject
Dim heatmapRange As Range
' Définir la feuille de travail et la plage de données
Set ws = ThisWorkbook.Sheets("Sheet1") ' Modifiez le nom de la feuille si nécessaire
Set dataRange = ws.Range("A1:D10") ' Ajustez votre plage de données ici
' Créer un nouveau graphique
Set chartObj = ws.ChartObjects.Add(Left:=300, Width:=500, Top:=50, Height:=300)
' Définir les données du graphique
chartObj.Chart.SetSourceData Source:=dataRange
' Définir le type de graphique à "Colonnes groupées" (vous pouvez ajuster ce type si nécessaire)
chartObj.Chart.ChartType = xlColumnClustered
' Appliquer les couleurs de la Heatmap avec le formatage conditionnel (échelle de couleurs)
Set heatmapRange = dataRange ' La plage où la heatmap sera appliquée
' Effacer tout formatage précédent
heatmapRange.FormatConditions.Delete
' Ajouter une échelle de couleurs (Vert - Jaune - Rouge)
With heatmapRange.FormatConditions.AddColorScale(ColorScaleType:=3)
' Définir les propriétés de l'échelle de couleurs
With .ColorScaleCriteria(1)
.Type = xlConditionValueLowestValue
.FormatColor.Color = RGB(0, 255, 0) ' Vert pour la valeur la plus basse
End With
With .ColorScaleCriteria(2)
.Type = xlConditionValuePercentile
.Formula = "=50" ' La valeur médiane est jaune
.FormatColor.Color = RGB(255, 255, 0) ' Jaune pour la valeur médiane
End With
With .ColorScaleCriteria(3)
.Type = xlConditionValueHighestValue
.FormatColor.Color = RGB(255, 0, 0) ' Rouge pour la valeur la plus haute
End With
End With
' Ajuster la mise en forme du graphique si nécessaire
With chartObj.Chart
.HasTitle = True
.ChartTitle.Text = "Carte Thermique des Données"
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Text = "Catégories"
.Axes(xlValue).HasTitle = True
.Axes(xlValue).AxisTitle.Text = "Valeurs"
End With
End Sub
Explication du Code
1. Définir la feuille de calcul et la plage de données :
- La variable
wsreprésente la feuille de calcul où se trouvent les données. Vous pouvez ajuster le nom de la feuille si nécessaire. - La variable
dataRangereprésente la plage de données à visualiser (par exemple, deA1:D10).
2. Création du graphique :
- Un graphique est créé sur la feuille de travail en utilisant la méthode
ChartObjects.Add. Le graphique est positionné à un endroit spécifique de la feuille grâce aux paramètresLeft,Width,Top, etHeight. - La méthode
SetSourceDataest utilisée pour lier le graphique à la plage de données que vous avez spécifiée.
3. Définir le type de graphique :
- Le type de graphique est défini sur
xlColumnClustered, ce qui signifie que vous obtiendrez un graphique à colonnes groupées. Vous pouvez changer cela pour d’autres types de graphiques (commexlLineouxlBar) si vous préférez une autre visualisation.
4. Ajouter un formatage conditionnel (couleurs de la heatmap) :
- La méthode
FormatConditions.AddColorScaleest utilisée pour appliquer une échelle de couleurs à la plage de données. - Cette échelle de couleurs a trois niveaux :
- Le premier niveau s’applique aux valeurs les plus basses et utilise la couleur verte (
RGB(0, 255, 0)). - Le deuxième niveau s’applique aux valeurs du 50e centile et utilise la couleur jaune (
RGB(255, 255, 0)). - Le troisième niveau s’applique aux valeurs les plus élevées et utilise la couleur rouge (
RGB(255, 0, 0)).
5. Mise en forme du graphique :
- Après avoir appliqué la heatmap, le code ajuste la mise en forme du graphique pour lui donner un titre et étiqueter les axes en « Catégories » et « Valeurs ».
- Vous pouvez ajuster ces titres en fonction de vos besoins.
Points Clés :
- Le code utilise le formatage conditionnel pour appliquer des échelles de couleurs à la plage de données, ce qui constitue la base de l’effet heatmap.
- Le graphique est défini comme un graphique à colonnes, mais vous pouvez personnaliser ce type en modifiant la propriété
ChartType. Par exemple, utilisezxlLinepour un graphique en courbes. - Le formatage conditionnel applique des couleurs en fonction des valeurs des données, ce qui permet de visualiser les tendances et les valeurs aberrantes.
Personnalisation :
- Plage de données : Ajustez la variable
dataRangepour correspondre à vos données. - Type de graphique : Changez le type de graphique en modifiant la propriété
ChartType. Par exemple, utilisezxlLinepour un graphique en courbes. - Couleurs : Vous pouvez modifier les valeurs RGB pour utiliser d’autres couleurs pour la heatmap (par exemple, bleu pour les faibles, jaune pour le milieu, rouge pour les fortes).
Ce code crée dynamiquement un graphique de type heatmap avec un formatage conditionnel qui vous aidera à visualiser vos données dans Excel.