Créer des visualisations de données avancées, Excel VBA
Voici un exemple de code VBA détaillé pour créer des visualisations de données avancées dans Excel, incluant des graphiques combinés, des graphiques radar, des graphiques en secteurs, et des graphiques en barres empilées. Je vais expliquer chaque partie du code en détail pour que vous puissiez comprendre comment il fonctionne et comment l’adapter à vos besoins spécifiques.
Exemple de Code : Améliorer la Visualisation des Données avec des Graphiques Avancés en VBA
Ce code VBA crée plusieurs graphiques avancés dans Excel, comme des graphiques combinés (colonne + ligne), des graphiques radar, et un tableau de bord dynamique avec des formats personnalisés.
Sub VisualisationAvanceeDesDonnees()
' Définir la feuille de calcul et la plage de données
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Feuil1")
' Supprimer tous les graphiques existants
ws.ChartObjects.Delete
' Préparer les données pour la visualisation
ws.Range("A1:F10").Value = _
Array( _
Array("Catégorie", "Série1", "Série2", "Série3", "Série4", "Série5"), _
Array("A", 10, 15, 30, 20, 25), _
Array("B", 20, 35, 40, 25, 30), _
Array("C", 30, 45, 60, 35, 50), _
Array("D", 40, 55, 70, 45, 60), _
Array("E", 50, 65, 80, 55, 70), _
Array("F", 60, 75, 90, 65, 80), _
Array("G", 70, 85, 100, 75, 90), _
Array("H", 80, 95, 110, 85, 100), _
Array("I", 90, 105, 120, 95, 110), _
Array("J", 100, 115, 130, 105, 120) _
)
' Créer un graphique combiné (colonne + ligne)
Dim graphiqueCombine As ChartObject
Set graphiqueCombine = ws.ChartObjects.Add(Left:=100, Width:=500, Top:=100, Height:=300)
With graphiqueCombine.Chart
.SetSourceData Source:=ws.Range("A1:F10")
.ChartType = xlColumnClustered
' Ajouter un axe secondaire pour les séries 4 et 5 (graphique en ligne)
.SeriesCollection.NewSeries
.SeriesCollection(2).ChartType = xlLine
.SeriesCollection(2).AxisGroup = xlSecondary
.SeriesCollection(3).ChartType = xlLine
.SeriesCollection(3).AxisGroup = xlSecondary
' Formatage du graphique
.HasTitle = True
.ChartTitle.Text = "Données de ventes par catégorie"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Catégorie"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Text = "Volume des ventes (Primaire)"
.Axes(xlValue, xlSecondary).HasTitle = True
.Axes(xlValue, xlSecondary).AxisTitle.Text = "Volume des ventes (Secondaire)"
.Legend.Position = xlLegendPositionBottom
End With
' Créer un graphique radar
Dim graphiqueRadar As ChartObject
Set graphiqueRadar = ws.ChartObjects.Add(Left:=100, Width:=500, Top:=450, Height:=300)
With graphiqueRadar.Chart
.SetSourceData Source:=ws.Range("A1:F6")
.ChartType = xlRadar
.HasTitle = True
.ChartTitle.Text = "Répartition des ventes par catégorie"
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Text = "Catégories"
End With
' Ajouter un graphique en secteurs pour les séries 1 à 3
Dim graphiqueSecteur As ChartObject
Set graphiqueSecteur = ws.ChartObjects.Add(Left:=650, Width:=400, Top:=100, Height:=300)
With graphiqueSecteur.Chart
.SetSourceData Source:=ws.Range("A2:D2")
.ChartType = xlPie
.HasTitle = True
.ChartTitle.Text = "Répartition de la catégorie A"
.Legend.Position = xlLegendPositionBottom
End With
' Créer un graphique en barres empilées pour les séries 4 et 5
Dim graphiqueBarres As ChartObject
Set graphiqueBarres = ws.ChartObjects.Add(Left:=650, Width:=500, Top:=450, Height:=300)
With graphiqueBarres.Chart
.SetSourceData Source:=ws.Range("A1:F6")
.ChartType = xlBarStacked
.HasTitle = True
.ChartTitle.Text = "Graphique en barres empilées pour les séries 4 et 5"
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Text = "Catégorie"
.Axes(xlValue).HasTitle = True
.Axes(xlValue).AxisTitle.Text = "Valeurs"
End With
' Afficher un message pour informer l'utilisateur
MsgBox "Graphiques créés avec succès !", vbInformation, "Visualisation des données"
End Sub
Explication détaillée du code :
1. Préparation des données :
- Cette section du code prépare un petit jeu de données pour la démonstration. Vous pouvez modifier cette partie pour faire référence à votre plage de données réelle.
- Les données se composent de catégories (A-J) et de plusieurs séries représentant différents points de données.
2. Suppression des graphiques existants :
- Avant de créer de nouveaux graphiques, le code supprime tous les graphiques existants de la feuille de calcul avec ws.ChartObjects.Delete.
3. Graphique combiné (Colonne + Ligne) :
- Un graphique combiné (Colonne + Ligne) est créé en utilisant le type de graphique xlColumnClustered pour les trois premières séries et xlLine pour les séries 4 et 5.
- Un axe secondaire est appliqué aux séries en ligne, ce qui permet de visualiser les différences d’échelle des données.
- Des titres sont ajoutés pour le graphique et les axes afin de rendre le graphique plus informatif.
4. Graphique radar :
- Un graphique radar est créé avec xlRadar, qui est utile pour afficher des données multidimensionnelles, notamment lorsque vous souhaitez comparer des valeurs entre plusieurs catégories.
- Le graphique est limité aux six premiers points de données pour cet exemple.
5. Graphique en secteurs :
- Un graphique en secteurs est créé pour les premières valeurs (séries 1 à 3) à partir de la plage de données.
- Les graphiques en secteurs sont utiles pour montrer la répartition en pourcentage d’une série donnée.
6. Graphique en barres empilées :
- Un graphique en barres empilées est utilisé pour montrer comment les parties individuelles (séries 4 et 5) contribuent au total de chaque catégorie.
- Le type de graphique xlBarStacked affiche les données sous forme de barres horizontales empilées.
7. Formatage :
- Chaque graphique a son propre formatage pour les titres et les étiquettes des axes, ce qui améliore la lisibilité.
- Les légendes sont positionnées en bas pour éviter qu’elles ne se chevauchent avec la zone du graphique.
8. Message de confirmation :
- Une fois que les graphiques sont générés, un message apparaît pour informer l’utilisateur que les graphiques ont été créés avec succès.
Comment utiliser ce code :
1. Ouvrez Excel et appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
2. Dans l’éditeur, allez dans Insertion > Module pour créer un nouveau module.
3. Collez le code dans le module et fermez l’éditeur VBA.
4. Exécutez la macro en appuyant sur Alt + F8, en sélectionnant VisualisationAvanceeDesDonnees, puis en cliquant sur « Exécuter ».
Conclusion :
Ce code VBA offre un moyen puissant de créer des visualisations de données avancées dans Excel. En utilisant différentes sortes de graphiques, il permet de mieux comprendre les tendances, les distributions et les relations entre les données. Vous pouvez facilement personnaliser ce code pour répondre à vos besoins spécifiques en fonction de vos données.