Créer un graphique Sunburst (Graphique en spirale), Excel VBA

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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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
    ws) où les données sont situées et calcule la dernière ligne de données (
    lastRow
    lastRow).
  • La plage de données (
    dataRange
    dataRange) est définie pour inclure les données des colonnes A à D, de la ligne 1 à
    lastRow
    lastRow.

2. Création du graphique :

  • Un nouvel objet graphique est ajouté à la feuille de calcul à l’aide de
    ChartObjects.Add
    ChartObjects.Add, et sa position et sa taille sont spécifiées par les paramètres
    Left
    Left,
    Width
    Width,
    Top
    Top, et
    Height
    Height.
  • La source de données pour le graphique est définie avec
    SetSourceData
    SetSourceData en pointant vers la
    dataRange
    dataRange.

3. Type de graphique :

  • Le type de graphique est défini sur
    xlSunburst
    xlSunburst, ce qui crée un graphique Sunburst.

4. Personnalisation optionnelle :

  • Un titre est ajouté au graphique avec
    .HasTitle = True
    .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)
    .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
Alt + F11 pour ouvrir l’éditeur VBA.
3. Insérez un nouveau module (
Insertion > 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
Alt + F8, sélectionnez
CreateSunburstChart
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
    Left,
    Top
    Top,
    Width
    Width, et
    Height
    Height 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.

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