Créer un graphique en anneau, Excel VBA
Voici un code VBA détaillé pour créer un graphique en anneau dans Excel, avec des explications étape par étape :
Étapes pour créer un graphique en anneau avec VBA dans Excel
1. Préparer les données dans Excel : Avant d’exécuter le code VBA, assurez-vous que vous avez des données structurées. Par exemple, une table avec des catégories et des valeurs :
Catégorie | Valeur |
A | 40 |
B | 30 |
C | 20 |
D | 10 |
2. Accéder à l’éditeur VBA :
- Ouvrez votre fichier Excel.
- Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
- Cliquez sur Insertion puis Module pour créer un nouveau module.
Copier le code VBA suivant dans le module :
Sub CreerGraphiqueAnneau() ' Déclaration des variables Dim ws As Worksheet Dim chartObj As ChartObject Dim plage As Range ' Définir la feuille de travail et la plage de données Set ws = ThisWorkbook.Sheets("Feuille1") ' Remplacez "Feuille1" par le nom de votre feuille Set plage = ws.Range("A1:B5") ' Remplacez "A1:B5" par la plage de vos données ' Créer un graphique en anneau Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225) ' Définir la position et la taille du graphique chartObj.Chart.SetSourceData Source:=plage ' Définir la source des données du graphique ' Modifier le type de graphique en anneau chartObj.Chart.ChartType = xlDoughnut ' Le type de graphique en anneau est xlDoughnut ' Personnaliser le graphique (optionnel) With chartObj.Chart ' Ajouter un titre au graphique .HasTitle = True .ChartTitle.Text = "Répartition des catégories" ' Modifier la couleur de chaque segment .SeriesCollection(1).Points(1).Format.Fill.ForeColor.RGB = RGB(255, 0, 0) ' Rouge .SeriesCollection(1).Points(2).Format.Fill.ForeColor.RGB = RGB(0, 255, 0) ' Vert .SeriesCollection(1).Points(3).Format.Fill.ForeColor.RGB = RGB(0, 0, 255) ' Bleu .SeriesCollection(1).Points(4).Format.Fill.ForeColor.RGB = RGB(255, 255, 0) ' Jaune ' Afficher les étiquettes de données .ApplyDataLabels ShowValue:=True, ShowPercentage:=True ' Optionnel : Ajouter une légende .HasLegend = True End With End Sub
Explication détaillée du code :
1. Déclaration des variables :
- ws : Représente la feuille de travail dans laquelle se trouve le graphique.
- chartObj : Représente l’objet graphique (le graphique que nous allons créer).
- plage : Représente la plage de données à utiliser pour le graphique.
2. Définir la feuille de travail et la plage de données :
- Set ws = ThisWorkbook.Sheets(« Feuille1 ») : Définit la feuille de travail où se trouvent vos données. Modifiez le nom de la feuille si nécessaire.
- Set plage = ws.Range(« A1:B5 ») : Définit la plage de données qui sera utilisée pour le graphique. Changez la plage selon vos données.
3. Création du graphique :
- Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225) : Crée un objet graphique dans la feuille de travail. Ici, nous définissons la position (en pixels) et la taille (largeur et hauteur) du graphique.
- chartObj.Chart.SetSourceData Source:=plage : Associe la plage de données à la source du graphique.
4. Définir le type de graphique :
- chartObj.Chart.ChartType = xlDoughnut : Définit le type du graphique en anneau (Doughnut Chart).
5. Personnalisation (optionnel) :
- With chartObj.Chart : Ouvre une section pour personnaliser le graphique.
- .HasTitle = True : Ajoute un titre au graphique.
- .ChartTitle.Text = « Répartition des catégories » : Définit le texte du titre du graphique.
- .SeriesCollection(1).Points(1).Format.Fill.ForeColor.RGB = RGB(255, 0, 0) : Modifie la couleur des segments du graphique (ici, le premier segment devient rouge, le deuxième vert, etc.).
- .ApplyDataLabels ShowValue:=True, ShowPercentage:=True : Affiche les étiquettes de données sur le graphique avec les valeurs et les pourcentages.
- .HasLegend = True : Ajoute une légende au graphique.
Exécution du code :
- Après avoir collé le code dans le module, fermez l’éditeur VBA.
- Revenez dans Excel, appuyez sur Alt + F8 pour ouvrir la fenêtre des macros.
- Sélectionnez CreerGraphiqueAnneau et cliquez sur Exécuter.
Le graphique en anneau sera généré sur la feuille spécifiée avec les données que vous avez définies.
Conclusion :
Ce code crée un graphique en anneau en utilisant les données définies dans une plage et permet une personnalisation (titre, couleurs, légende, etc.). Vous pouvez ajuster les paramètres et les plages selon vos besoins pour l’adapter à différents scénarios.