Création d’un Graphique Thermomètre dans Excel, Excel VBA
Un graphique Thermomètre est une excellente manière de représenter visuellement les progrès vers un objectif, comme le suivi des performances de vente, l’avancement d’un projet ou toute autre métrique basée sur un pourcentage. Ce guide vous fournira un code VBA détaillé pour créer un graphique Thermomètre dynamique dans Excel.
1. Comprendre la Structure du Graphique Thermomètre
Un graphique Thermomètre se compose de :
- Une colonne de fond représentant 100 % de l’objectif.
- Une colonne remplie représentant la progression réelle.
- Un graphique bien formaté pour ressembler à un thermomètre.
Le concept de base derrière ce graphique consiste à utiliser un Graphique à Colonnes Empilées, où :
- Une série de données représente la valeur réelle.
- Une autre série représente la valeur maximale possible.
2. Préparer les Données pour le Graphique
Nous avons besoin d’un tableau simple avec :
Indicateur | Valeur |
Valeur actuelle | 75 |
Valeur cible | 100 |
3. Code VBA pour Créer un Graphique Thermomètre Dynamique
Le macro VBA suivant automatise le processus de création et de formatage du Graphique Thermomètre :
Sub CreateThermometerChart() Dim ws As Worksheet Dim chartObj As ChartObject Dim chart As Chart Dim rng As Range ' Définir la feuille de travail où les données sont stockées Set ws = ActiveSheet ' Définir la plage de données pour le graphique Set rng = ws.Range("A1:B3") ' Supposons que les données commencent à A1 avec des en-têtes ' Supprimer tout graphique existant dans la feuille de travail For Each chartObj In ws.ChartObjects chartObj.Delete Next chartObj ' Ajouter un nouveau graphique Set chartObj = ws.ChartObjects.Add(Left:=100, Top:=50, Width:=300, Height:=400) Set chart = chartObj.Chart ' Définir les données sources du graphique chart.SetSourceData Source:=rng ' Changer le type de graphique en Graphique à Colonnes Empilées chart.ChartType = xlColumnStacked ' Formater le graphique pour ressembler à un thermomètre With chart .HasTitle = True .ChartTitle.Text = "Graphique Thermomètre" .Legend.Delete ' Supprimer la légende .Axes(xlCategory).Delete ' Supprimer l'axe horizontal End With ' Formater la première série de données With chart.SeriesCollection(1) .IsFiltered = False .Format.Fill.ForeColor.RGB = RGB(255, 0, 0) ' Couleur rouge pour la progression .Format.Fill.Transparency = 0 End With ' Formater la deuxième série (fond) With chart.SeriesCollection(2) .Format.Fill.ForeColor.RGB = RGB(200, 200, 200) ' Fond gris .Format.Fill.Transparency = 0.5 ' Légère transparence End With ' Ajuster l'axe des ordonnées With chart.Axes(xlValue) .MaximumScale = ws.Range("B3").Value ' Définir l'échelle maximale sur la valeur cible .MinimumScale = 0 ' S'assurer que l'échelle commence à zéro .TickLabels.NumberFormat = "0%" End With ' Aligner correctement le graphique chartObj.Left = ws.Range("D1").Left chartObj.Top = ws.Range("D1").Top End Sub
4. Explication du Code
Étape 1 : Configuration de la Feuille et des Données
-
-
- Le macro fonctionne sur la feuille active.
- Il suppose que la colonne A contient les labels et la colonne B contient les valeurs numériques (Valeur actuelle et Valeur cible).
-
Étape 2 : Suppression des Graphiques Existants
-
-
- Avant d’ajouter un nouveau graphique, tout graphique existant dans la feuille est supprimé pour éviter les doublons.
-
Étape 3 : Création d’un Nouveau Graphique
-
-
- Un ChartObject est inséré dans la feuille de travail à un emplacement spécifié.
- Les données sources pour le graphique sont définies avec
chart.SetSourceData
.
-
Étape 4 : Changement du Type de Graphique
-
-
- Le type de graphique est défini en Graphique à Colonnes Empilées (
xlColumnStacked
).
- Le type de graphique est défini en Graphique à Colonnes Empilées (
-
Étape 5 : Formatage pour l’Effet Thermomètre
-
-
- La première série de données (Valeur actuelle) est colorée en rouge pour représenter la progression.
- La deuxième série de données (Valeur cible) est colorée en gris pour représenter l’échelle complète.
- La légende est supprimée pour un aspect plus épuré.
- L’axe horizontal est supprimé pour donner l’apparence d’un thermomètre.
-
Étape 6 : Ajustement de l’Axe des Ordonnées
-
-
- L’échelle maximale est définie dynamiquement sur la Valeur cible.
- Les étiquettes de l’axe sont formatées en pourcentage.
-
5. Exécution du Code VBA
Pour exécuter le macro :
1. Ouvrez Excel et appuyez sur ALT + F11
pour ouvrir l’éditeur VBA.
2. Insérez un nouveau Module (Insertion
→ Module
).
3. Copiez et collez le code VBA dans le module.
4. Exécutez le macro en appuyant sur F5
.
6. Améliorations et Personnalisations
1. Mettre à jour le Graphique automatiquement
-
-
- Au lieu de recréer le graphique à chaque fois, vous pouvez modifier le macro pour mettre à jour un graphique existant lorsque les valeurs changent.
-
2. Ajouter un UserForm pour la Saisie des Données
-
-
- Permettre aux utilisateurs de saisir les valeurs dans un UserForm et de mettre à jour dynamiquement le graphique.
-
3. Améliorer l’Esthétique
-
-
- Ajouter des bords arrondis et un effet brillant pour le thermomètre.
- Utiliser des dégradés de couleurs pour améliorer la visualisation.
-
7. Conclusion
Ce macro VBA fournit une méthode structurée pour créer un graphique Thermomètre dynamique dans Excel. En suivant ce guide, vous pouvez automatiser la visualisation du suivi des progrès, rendant ainsi vos rapports plus interactifs et pertinents.