Créer un graphique Tree Map (Carte Arborescente), Excel VBA
Un graphique Tree Map est une visualisation qui représente des données hiérarchiques en utilisant des rectangles imbriqués. Chaque catégorie est représentée par un rectangle, et sa taille est proportionnelle à une valeur.
1. Étapes pour Créer un Graphique Tree Map avec VBA
Pour créer un graphique Tree Map avec VBA, nous allons :
1. Préparer des données hiérarchiques d’exemple dans une feuille Excel.
2. Insérer un graphique Tree Map.
3. Formater le graphique pour une meilleure lisibilité.
2. Code VBA pour Créer un Graphique Tree Map
Le code VBA suivant :
-
- Insère des données d’exemple dans une feuille Excel.
- Crée un graphique Tree Map.
- Ajuste le formatage du graphique.
Sub CreateTreeMapChart()
Dim ws As Worksheet
Dim chartObj As ChartObject
Dim treeMapChart As Chart
Dim dataRange As Range ' Étape 1 : Définir la feuille de travail
On Error
Resume
Next
Set ws = ThisWorkbook.Sheets("TreeMapData")
If ws Is Nothing Then
Set ws = ThisWorkbook.Sheets.Add
ws.Name = "TreeMapData"
End If
On Error GoTo 0
' Étape 2 : Ajouter des données d'exemple pour le Tree Map
ws.Cells.Clear
ws.Range("A1:C1").Value = Array("Catégorie", "Sous-catégorie", "Valeur")
ws.Range("A2:C10").Value = Array( _ Array("Fruits", "Pommes", 50), _ Array("Fruits", "Bananes", 30), _ Array("Fruits", "Oranges", 40), _ Array("Légumes", "Carottes", 20), _ Array("Légumes", "Pommes de terre", 35), _ Array("Légumes", "Tomates", 25), _ Array("Produits laitiers", "Lait", 60), _ Array("Produits laitiers", "Fromage", 45), _ Array("Produits laitiers", "Yaourt", 30))
' Étape 3 : Définir la plage de données
Set dataRange = ws.Range("A1:C10")
' Étape 4 : Créer le graphique Tree Map
Set chartObj = ws.ChartObjects.Add(Left:=100, Top:=50, Width:=400, Height:=300)
Set treeMapChart = chartObj.Chart
treeMapChart.SetSourceData Source:=dataRange
treeMapChart.ChartType = xlTreemap
' Étape 5 : Formater le graphique Tree Map
With treeMapChart
.HasTitle = True
.ChartTitle.Text = "Graphique Tree Map - Données de Ventes"
.ChartTitle.Font.Size = 14
.ChartTitle.Font.Bold = True
.Legend.Position = xlBottom
End With
' Étape 6 : Ajuster automatiquement les colonnes
ws.Columns("A:C").AutoFit
' Informer l'utilisateur
MsgBox "Le graphique Tree Map a été créé avec succès !", vbInformation, "Succès"
End Sub
3. Explication du Code
Étape 1 : Définir la Feuille de Travail
Set ws = ThisWorkbook.Sheets("TreeMapData")
If ws Is Nothing Then
Set ws = ThisWorkbook.Sheets.Add
ws.Name = "TreeMapData"
End If
- Le code vérifie si une feuille nommée
"TreeMapData"existe. - Si elle n’existe pas, une nouvelle feuille est créée avec ce nom.
Étape 2 : Insérer des Données d’Exemple
ws.Range("A1:C1").Value = Array("Catégorie", "Sous-catégorie", "Valeur")
ws.Range("A2:C10").Value = Array( _
Array("Fruits", "Pommes", 50), _
Array("Fruits", "Bananes", 30), _
Array("Fruits", "Oranges", 40), _
Array("Légumes", "Carottes", 20), _
Array("Légumes", "Pommes de terre", 35), _
Array("Légumes", "Tomates", 25), _
Array("Produits laitiers", "Lait", 60), _
Array("Produits laitiers", "Fromage", 45), _
Array("Produits laitiers", "Yaourt", 30))
- Les en-têtes
"Catégorie","Sous-catégorie"et"Valeur"sont définis. - Des données hiérarchiques d’exemple sont insérées.
Étape 3 : Définir la Plage de Données
Set dataRange = ws.Range("A1:C10")
- La plage de données pour le graphique est définie.
Étape 4 : Créer et Insérer le Graphique Tree Map
Set chartObj = ws.ChartObjects.Add(Left:=100, Top:=50, Width:=400, Height:=300) Set treeMapChart = chartObj.Chart treeMapChart.SetSourceData Source:=dataRange treeMapChart.ChartType = xlTreemap
- Un graphique est inséré dans la feuille de travail.
- Les données sont attribuées au graphique.
- Le type de graphique est défini comme Tree Map (xlTreemap).
Étape 5 : Formater le Graphique Tree Map
With treeMapChart
.HasTitle = True
.ChartTitle.Text = "Graphique Tree Map - Données de Ventes"
.ChartTitle.Font.Size = 14
.ChartTitle.Font.Bold = True
.Legend.Position = xlBottom
End With
- Un titre est ajouté au graphique.
- La taille de la police du titre est définie, et la propriété « gras » est activée.
- La légende est positionnée en bas.
Étape 6 : Ajuster Automatiquement les Colonnes et Afficher un Message de Succès
ws.Columns("A:C").AutoFit
MsgBox "Le graphique Tree Map a été créé avec succès !", vbInformation, "Succès"
- Les colonnes sont redimensionnées pour une meilleure lisibilité.
- Une boîte de message informe l’utilisateur que le graphique Tree Map a été créé avec succès.
4. Exécution du Code VBA
1. Ouvrez Excel et appuyez sur ALT + F11 pour ouvrir l’éditeur VBA.
2. Insérez un nouveau module.
3. Copiez et collez le code VBA.
4. Exécutez CreateTreeMapChart.
5. Résultat Attendu
- Une nouvelle feuille nommée TreeMapData est créée.
- Les données d’exemple sont ajoutées.
- Un graphique Tree Map est inséré et formaté.
6. Options de Personnalisation
Vous pouvez modifier :
- Les données pour répondre à vos besoins.
- Le titre du graphique (
treeMapChart.ChartTitle.Text). - La taille du graphique (
Width,Height). - La position du graphique (
Left,Top).
7. Conclusion
Ce macro VBA automatise le processus de création d’un graphique Tree Map dans Excel, ce qui permet de gagner du temps et d’assurer la cohérence.