Créer un graphique Sunburst (Graphique en spirale), Excel VBA
Voici un guide détaillé pour créer un graphique Sunburst (Graphique en spirale) à l’aide de VBA dans Excel. Ce type de graphique est utilisé pour représenter des relations hiérarchiques de manière circulaire. Excel nécessite des données structurées sous forme de parent-enfant pour ce type de graphique.
Étape 1 : Préparer les données
Assurez-vous que vos données sont structurées hiérarchiquement. Pour un graphique Sunburst, vous aurez besoin de colonnes représentant les niveaux hiérarchiques, comme :
1. Niveau 1 (Catégorie principale)
2. Niveau 2 (Sous-catégorie)
3. Niveau 3 (Sous-sous-catégorie, etc.)
4. Valeurs (représentant la taille de chaque segment)
Exemple de données :
Catégorie principale | Sous-catégorie | Sous-sous-catégorie | Valeur |
Catégorie A | Sous A1 | Sous-sous A1.1 | 10 |
Catégorie A | Sous A1 | Sous-sous A1.2 | 20 |
Catégorie A | Sous A2 | Sous-sous A2.1 | 15 |
Catégorie B | Sous B1 | Sous-sous B1.1 | 25 |
Catégorie B | Sous B2 | Sous-sous B2.1 | 30 |
Étape 2 : Ajouter le code VBA
Voici le code VBA pour créer un graphique Sunburst basé sur les données ci-dessus.
Sub CreateSunburstChart() Dim ws As Worksheet Dim chartObj As ChartObject Dim lastRow As Long Dim dataRange As Range ' Définir la feuille de calcul Set ws = ThisWorkbook.Sheets("Sheet1") ' Modifiez le nom de votre feuille ici ' Trouver la dernière ligne de données lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Définir la plage de données (suppose que les données commencent en A1) Set dataRange = ws.Range("A1:D" & lastRow) ' Ajouter un nouveau graphique Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=400, Top:=100, Height:=300) ' Définir la source de données du graphique chartObj.Chart.SetSourceData Source:=dataRange ' Définir le type de graphique en Sunburst chartObj.Chart.ChartType = xlSunburst ' Optionnel : Ajouter un titre au graphique chartObj.Chart.HasTitle = True chartObj.Chart.ChartTitle.Text = "Exemple de graphique Sunburst" ' Optionnel : Personnaliser le graphique (ex. format des étiquettes, couleurs) With chartObj.Chart .ApplyLayout (4) ' Appliquer un design pour un meilleur visuel .Legend.Position = xlLegendPositionBottom .Legend.IncludeInLayout = False End With End Sub
Étape 3 : Explication du code
1. Feuille de calcul et plage de données :
- Le code commence par définir la feuille de calcul (
ws
) où les données sont situées et calcule la dernière ligne de données (lastRow
). - La plage de données (
dataRange
) est définie pour inclure les données des colonnes A à D, de la ligne 1 àlastRow
.
2. Création du graphique :
- Un nouvel objet graphique est ajouté à la feuille de calcul à l’aide de
ChartObjects.Add
, et sa position et sa taille sont spécifiées par les paramètresLeft
,Width
,Top
, etHeight
. - La source de données pour le graphique est définie avec
SetSourceData
en pointant vers ladataRange
.
3. Type de graphique :
- Le type de graphique est défini sur
xlSunburst
, ce qui crée un graphique Sunburst.
4. Personnalisation optionnelle :
- Un titre est ajouté au graphique avec
.HasTitle = True
et en définissant le texte pour le titre du graphique. - Certaines mises en forme sont appliquées au graphique avec
.ApplyLayout (4)
, ce qui peut être ajusté en fonction de vos préférences. - La légende est placée en bas et exclue du layout.
Étape 4 : Exécution du code
1. Ouvrez le classeur Excel dans lequel vous souhaitez créer le graphique Sunburst.
2. Appuyez sur Alt + F11
pour ouvrir l’éditeur VBA.
3. Insérez un nouveau module (Insertion > Module
).
4. Collez le code ci-dessus dans le module.
5. Fermez l’éditeur et retournez dans Excel.
6. Appuyez sur Alt + F8
, sélectionnez CreateSunburstChart
, puis cliquez sur « Exécuter ».
Étape 5 : Personnalisation
Vous pouvez modifier le code pour ajuster différents aspects :
- Taille du graphique : Changez les paramètres
Left
,Top
,Width
, etHeight
lors de l’ajout du graphique. - Design du graphique : Personnalisez le design du graphique en modifiant le layout, les couleurs et la position de la légende.
Cela vous permettra de créer un graphique Sunburst basé sur la structure hiérarchique des données dans votre feuille de calcul.