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.