Techniques avancées de visualisation des données, Excel VBA

Techniques avancées de visualisation des données, Excel VBA

Voici une explication détaillée sur la mise en œuvre de techniques avancées de visualisation des données avec VBA dans Excel.
Dans Excel, la visualisation des données aide les utilisateurs à interpréter et à présenter les informations de manière plus efficace. Bien que les graphiques et diagrammes intégrés dans Excel offrent une fonctionnalité de base, VBA peut améliorer cette fonctionnalité en permettant des visualisations avancées.
Parmi les techniques de visualisation avancées, on retrouve :
1. Graphiques dynamiques (graphique qui se met à jour automatiquement en fonction des données)
2. Mise en forme conditionnelle (utilisation de couleurs, barres de données et icônes pour mettre en évidence des modèles dans les données)
3. Graphiques combinés (combinaison de plusieurs types de graphiques, par exemple un graphique en colonnes et une courbe sur le même graphique)
4. Tableau de bord dynamique (rapports interactifs et visuellement attrayants avec plusieurs graphiques et contrôles)
Mise en œuvre étape par étape avec VBA pour des visualisations avancées
Passons à l’exemple de chaque technique avec un code VBA correspondant, ainsi que des explications détaillées pour chaque cas.
1. Graphiques dynamiques
Les graphiques dynamiques se mettent à jour automatiquement lorsque les données changent. Par exemple, si vous avez un ensemble de données de ventes mensuelles et que vous voulez que le graphique se mette à jour automatiquement chaque fois que de nouvelles données sont ajoutées.
Code VBA pour créer un graphique dynamique

Sub CreateDynamicChart()
    Dim ws As Worksheet
    Dim chartObject As ChartObject
    Dim dataRange As Range
    ' Référence à la feuille de calcul
    Set ws = ThisWorkbook.Sheets("SalesData")
    ' Définir la plage de données dynamiquement
    ' Supposons que les données sont dans les colonnes A et B, à partir de la ligne 1
    Set dataRange = ws.Range("A1:B" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)
    ' Créer un graphique
    Set chartObject = ws.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225)
    ' Définir la source du graphique
    chartObject.Chart.SetSourceData Source:=dataRange
    ' Définir le type de graphique (ici un graphique en ligne)
    chartObject.Chart.ChartType = xlLine
    ' Ajouter un titre
    chartObject.Chart.HasTitle = True
    chartObject.Chart.ChartTitle.Text = "Sales Trend"
    ' Personnaliser le graphique
    chartObject.Chart.Axes(xlCategory, xlPrimary).HasTitle = True
    chartObject.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Month"
    chartObject.Chart.Axes(xlValue, xlPrimary).HasTitle = True
    chartObject.Chart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Sales"
End Sub

Explication

  • Plage Dynamique : La plage de données est définie dynamiquement en fonction de la dernière ligne non vide de la colonne A. Cela permet au graphique de s’ajuster automatiquement à la taille des données.
  • Création du Graphique : Le graphique créé est de type « ligne », et quelques éléments comme le titre et les étiquettes des axes sont ajoutés pour le rendre plus lisible.

2. Mise en forme conditionnelle
La mise en forme conditionnelle permet de formater visuellement les cellules en fonction de leur valeur. Par exemple, vous pouvez vouloir mettre en surbrillance les chiffres de vente supérieurs à un certain seuil avec une couleur verte et ceux qui sont inférieurs avec une couleur rouge.
Code VBA pour la mise en forme conditionnelle

Sub ApplyConditionalFormatting()
    Dim ws As Worksheet
    Dim dataRange As Range
    ' Référence à la feuille de calcul
    Set ws = ThisWorkbook.Sheets("SalesData")
    ' Définir la plage de données à formater (ici les ventes sont en colonne B)
    Set dataRange = ws.Range("B2:B" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row)
    ' Effacer les mises en forme existantes
    dataRange.FormatConditions.Delete
    ' Appliquer la mise en forme conditionnelle (vert pour > 1000, rouge pour < 500) With dataRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreater, Formula1:="1000") .Interior.Color = RGB(0, 255, 0) ' Vert pour > 1000
    End With
    With dataRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlLess, Formula1:="500")
        .Interior.Color = RGB(255, 0, 0) ' Rouge pour < 500
    End With
End Sub

Explication

  • FormatConditions : Cet objet permet d’appliquer une mise en forme conditionnelle. Dans cet exemple, nous utilisons xlCellValue pour formater les cellules en fonction de leur valeur.
  • Codage par couleur : La couleur verte est appliquée aux cellules dont la valeur est supérieure à 1000, et la couleur rouge est appliquée aux cellules dont la valeur est inférieure à 500.

3. Graphiques combinés
Un graphique combiné permet de combiner plusieurs types de graphiques (par exemple, un graphique en colonnes pour une série de données et une courbe pour une autre). Cela est utile pour comparer différentes tendances sur un même graphique.
Code VBA pour un graphique combiné

Sub CreateComboChart()
    Dim ws As Worksheet
    Dim chartObject As ChartObject
    Dim dataRange As Range
    ' Référence à la feuille de calcul
    Set ws = ThisWorkbook.Sheets("SalesData")
    ' Définir la plage de données (supposons que les données sont dans les colonnes A, B et C)
    Set dataRange = ws.Range("A1:C" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)
    ' Créer un graphique
    Set chartObject = ws.ChartObjects.Add(Left:=100, Width:=500, Top:=100, Height:=300)
    ' Définir la source des données
    chartObject.Chart.SetSourceData Source:=dataRange
    ' Créer un graphique combiné (colonnes pour les données de la 2e colonne, courbe pour la 3e colonne)
    chartObject.Chart.ChartType = xlColumnClustered
    chartObject.Chart.SeriesCollection(1).ChartType = xlColumnClustered ' Colonne pour les ventes
    chartObject.Chart.SeriesCollection(2).ChartType = xlLine ' Ligne pour la marge bénéficiaire
    ' Ajouter des titres
    chartObject.Chart.HasTitle = True
    chartObject.Chart.ChartTitle.Text = "Sales and Profit Margin"
    chartObject.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Month"
    chartObject.Chart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Sales"
End Sub

Explication

  • Types de graphiques : Le premier ensemble de données (par exemple, les ventes) est affiché sous forme de colonnes, tandis que le deuxième ensemble (par exemple, la marge bénéficiaire) est affiché sous forme de ligne.
  • Graphiques combinés : Excel permet de mélanger différents types de graphiques pour améliorer la visualisation des données.

4. Tableau de bord dynamique
Un tableau de bord dynamique est un rapport interactif où les utilisateurs peuvent filtrer les données ou sélectionner certains éléments pour voir des visuels associés. Cela peut être un peu plus complexe, mais VBA peut automatiser et contrôler cela.
Exemple basique : Ajouter un bouton pour mettre à jour un graphique
Voici un exemple simple où un bouton permet de changer dynamiquement la plage de données d’un graphique.

Sub CreateDashboard()
    Dim ws As Worksheet
    Dim button As Object
    Dim chartObject As ChartObject
    ' Référence à la feuille de calcul
    Set ws = ThisWorkbook.Sheets("Dashboard")
    ' Ajouter un bouton
    Set button = ws.Buttons.Add(Left:=100, Top:=50, Width:=100, Height:=30)
    button.Caption = "Update Chart"
    ' Assigner une macro pour mettre à jour le graphique lorsque le bouton est cliqué
    button.OnAction = "UpdateChart"
    ' Ajouter un graphique
    Set chartObject = ws.ChartObjects.Add(Left:=100, Top:=100, Width:=375, Height:=225)
    chartObject.Chart.ChartType = xlColumnClustered
    chartObject.Chart.HasTitle = True
    chartObject.Chart.ChartTitle.Text = "Sales Overview"
End Sub
Sub UpdateChart()
    Dim ws As Worksheet
    Dim chartObject As ChartObject
    Dim newRange As Range
    ' Référence à la feuille de calcul
    Set ws = ThisWorkbook.Sheets("Dashboard")
    ' Mettre à jour le graphique avec une nouvelle plage de données
    Set chartObject = ws.ChartObjects(1)
    Set newRange = ws.Range("A1:B10") ' Nouvelle plage dynamique pour le graphique
    chartObject.Chart.SetSourceData Source:=newRange
End Sub

Explication

  • Contrôle de bouton : Le bouton permet de déclencher la macro UpdateChart, qui met à jour la plage de données du graphique.
  • Mise à jour dynamique : La macro UpdateChart permet de changer la source des données du graphique lorsque le bouton est cliqué.

Conclusion
Avec VBA dans Excel, vous pouvez améliorer considérablement vos capacités de visualisation des données. Les exemples fournis couvrent des graphiques dynamiques, la mise en forme conditionnelle, les graphiques combinés et même des tableaux de bord interactifs. Vous pouvez étendre ces techniques en ajoutant des fonctionnalités plus avancées telles que les graphiques en courbes multiples, les filtres interactifs ou l’intégration avec des sources de données externes.

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