Créer un graphique Tree Map (Carte Arborescente), Excel VBA

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.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x