Création d’un graphique Treemap, Excel VBA

Création d’un graphique Treemap, Excel VBA
Un graphique Treemap est un outil de visualisation des données qui représente des données hiérarchiques sous forme de rectangles imbriqués. Chaque catégorie se voit attribuer un rectangle dont la taille est proportionnelle à la valeur correspondante.
1. Comprendre les graphiques Treemap

  • Les graphiques Treemap sont utiles pour afficher des proportions au sein d’une hiérarchie.
  • Ils sont particulièrement efficaces pour des données structurées, comme les ventes de produits par catégorie et sous-catégorie.

2. Préparer les données
Pour créer un graphique Treemap avec VBA, vos données doivent être structurées de manière hiérarchique, comme ceci :

Catégorie Sous-Catégorie Valeur
Fruits Pommes 100
Fruits Bananes 150
Fruits Oranges 120
Légumes Carottes 80
Légumes Brocolis 90
Produits Laitiers Lait 200
Produits Laitiers Fromage 160

3. Code VBA pour créer un graphique Treemap
Le macro VBA suivant :
1. Insère un graphique Treemap dans la feuille active.
2. Formate le graphique pour le rendre plus lisible.
Code VBA

Sub CreateTreemapChart()
    Dim ws As Worksheet
    Dim chartObj As ChartObject
    Dim rng As Range
    Dim treemapChart As Chart
    ' Définir la feuille de travail
    Set ws = ActiveSheet
    ' Définir la plage de données (ajustez si nécessaire)
    Set rng = ws.Range("A1:C8") ' A1:C8 contient Catégorie, Sous-Catégorie et Valeurs
    ' Insérer un objet graphique
    Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=400, Top:=50, Height:=300)
    ' Référence le graphique à l'intérieur de l'objet graphique
    Set treemapChart = chartObj.Chart
    ' Définir les données source du graphique
    treemapChart.SetSourceData Source:=rng
    ' Changer le type de graphique en Treemap
    treemapChart.ChartType = xlTreemap
    ' Formater le titre du graphique
    treemapChart.HasTitle = True
    treemapChart.ChartTitle.Text = "Répartition des ventes par catégorie"
    ' Positionner la légende
    treemapChart.Legend.Position = xlLegendPositionBottom
    ' Améliorer la lisibilité du graphique
    With treemapChart
        .ApplyLayout (1) ' Appliquer une disposition par défaut
        .ChartStyle = 5 ' Utiliser un style de graphique prédéfini
    End With
    ' Ajuster automatiquement la taille du graphique pour une meilleure visibilité
    chartObj.Width = 500
    chartObj.Height = 350
    chartObj.Top = 20
    chartObj.Left = 50
    ' Libérer les objets
    Set treemapChart = Nothing
    Set chartObj = Nothing
    Set ws = Nothing
    Set rng = Nothing
    MsgBox "Graphique Treemap créé avec succès !", vbInformation, "Succès"
End Sub

4. Explication du code VBA
Étape 1 : Sélectionner la feuille de travail
Set ws = ActiveSheet

  • Cela garantit que la macro fonctionne sur la feuille active.

Étape 2 : Définir la plage de données
Set rng = ws.Range("A1:C8")

  • Cette ligne définit la plage de données pour le graphique Treemap.

Étape 3 : Insérer un objet graphique
Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=400, Top:=50, Height:=300)

  • Insère un nouveau graphique dans la feuille avec des dimensions spécifiées.

Étape 4 : Configurer le graphique

Set treemapChart = chartObj.Chart
treemapChart.SetSourceData Source:=rng
treemapChart.ChartType = xlTreemap
  • Définir la source de données et définir le type de graphique en Treemap.

Étape 5 : Formater le graphique

treemapChart.HasTitle = True
treemapChart.ChartTitle.Text = "Répartition des ventes par catégorie"
  • Active et personnalise le titre du graphique.

treemapChart.Legend.Position = xlLegendPositionBottom

    • Déplace la légende en bas pour plus de clarté.

With treemapChart .ApplyLayout (1) ‘ Appliquer la disposition par défaut .ChartStyle = 5 ‘ Utiliser un style prédéfini pour le graphique End With

  • Applique un formatage pour améliorer l’apparence du graphique.

Étape 6 : Ajuster la taille et la position du graphique

chartObj.Width = 500
chartObj.Height = 350
chartObj.Top = 20
chartObj.Left = 50
  • Redimensionne et repositionne le graphique sur la feuille de travail.

Étape 7 : Libérer les objets

Set treemapChart = Nothing
Set chartObj = Nothing
Set ws = Nothing
Set rng = Nothing
  • Libère les références d’objets pour libérer de la mémoire.

5. Exécution du code VBA
1. Ouvrez Excel et appuyez sur ALT + F11 pour ouvrir l’éditeur VBA.
2. Insérez un nouveau module et collez le code VBA.
3. Sélectionnez votre feuille de travail et assurez-vous que les données sont correctement structurées.
4. Exécutez la macro CreateTreemapChart en appuyant sur F5.
6. Résultat attendu
Après avoir exécuté la macro, un graphique Treemap apparaîtra sur la feuille active, affichant les données de ventes hiérarchiques. Les rectangles seront dimensionnés proportionnellement à leurs valeurs, facilitant ainsi la comparaison des catégories et sous-catégories.
7. Personnalisation supplémentaire
Vous pouvez améliorer le graphique en :

    • Changeant le titre du graphique dynamiquement en fonction d’une valeur de cellule :

treemapChart.ChartTitle.Text = ws.Range("E1").Value

    • Modifiant les thèmes de couleurs :

treemapChart.ChartStyle = 10

    • Ajoutant des étiquettes de données :

treemapChart.ApplyDataLabels xlDataLabelsShowValue

    • Ajustant le format de la légende :

treemapChart.Legend.Font.Size = 12

8. Conclusion
Cette macro VBA automatise la création d’un graphique Treemap dans Excel, facilitant ainsi la visualisation des données hiérarchiques. Vous pouvez personnaliser davantage la macro pour sélectionner les données dynamiquement ou améliorer le formatage du graphique.

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