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.