Créer un tableau de bord interactif, Excel VBA

Créer un tableau de bord interactif, Excel VBA

Créer un tableau de bord interactif dans Excel à l’aide de VBA nécessite une approche méthodique. Voici une explication détaillée de chaque étape, accompagnée d’un exemple de code pour construire le tableau de bord :
Étape 1 : Préparer les Données
Avant de créer le tableau de bord, vous devez d’abord préparer les données utilisées pour l’analyse. Assurez-vous que vos données sont organisées dans des tableaux ou des plages de données que Excel peut référencer.

  • Organisez les données sous forme de tableaux structurés : Vous pourriez avoir des données de ventes, des indicateurs de performance, des données clients ou d’autres informations pertinentes pour votre tableau de bord.
  • Assurez-vous que les données sont propres : Supprimez les doublons, vérifiez les valeurs manquantes et assurez-vous de la cohérence.

Par exemple, supposons que vous ayez les colonnes suivantes :

  • Date (Mois/Année)
  • Ventes (Montant)
  • Région (Nom de la région)
  • Catégorie de produit (Type de produit)

Étape 2 : Concevoir le Tableau de Bord
La conception du tableau de bord consiste à déterminer les indicateurs clés et les graphiques que vous souhaitez afficher.

  • Choisissez les indicateurs clés : Cela pourrait être les tendances des ventes, la performance par région, les catégories de produits, etc.
  • Utilisez les graphiques intégrés d’Excel : Créez divers graphiques tels que des graphiques en barre, en courbe ou des graphiques en secteurs.
  • Rendez-le interactif : Préparez des filtres, des segments et des menus déroulants permettant à l’utilisateur d’interagir avec le tableau de bord.

Par exemple, un tableau de bord pourrait inclure :

  • Un segment pour sélectionner une région spécifique
  • Un graphique en courbe montrant les tendances des ventes au fil du temps
  • Un graphique en secteurs pour montrer la répartition des ventes par catégorie de produit
  • Un tableau récapitulatif de la performance globale

Étape 3 : Écrire le Code VBA
Maintenant, écrivons le code VBA pour améliorer l’interactivité et automatiser le fonctionnement du tableau de bord.
Voici un exemple de code VBA qui met à jour dynamiquement les éléments du tableau de bord en fonction de l’interaction de l’utilisateur.

Sub CreateInteractiveDashboard()
    Dim wsDashboard As Worksheet
    Set wsDashboard = ThisWorkbook.Sheets("Dashboard")
    ' Effacer les données et graphiques précédents
    wsDashboard.Cells.Clear
    ' Mettre en place la mise en page de base du tableau de bord (titres, étiquettes, etc.)
    wsDashboard.Range("A1").Value = "Tableau de Bord des Ventes"
    wsDashboard.Range("A2").Value = "Sélectionner la région :"
    ' Ajouter un menu déroulant pour la sélection de la région
    Dim regionList As Range
    Set regionList = ThisWorkbook.Sheets("Data").Range("B2:B100") ' Supposer que les régions sont dans la colonne B
    With wsDashboard.DropDowns.Add(Left:=100, Top:=30, Width:=150, Height:=15)
        .ListFillRange = regionList.Address
        .OnAction = "UpdateDashboard" ' Macro pour mettre à jour le tableau de bord en fonction de la région sélectionnée
    End With
    ' Ajouter des graphiques et éléments initiaux
    Call CreateInitialCharts(wsDashboard)
End Sub
Sub CreateInitialCharts(wsDashboard As Worksheet)
    ' Créer un graphique en courbe des ventes au fil du temps
    Dim chartObj As ChartObject
    Set chartObj = wsDashboard.ChartObjects.Add(Left:=50, Top:=100, Width:=400, Height:=300)
    chartObj.Chart.SetSourceData Source:=ThisWorkbook.Sheets("Data").Range("A2:B100") ' Supposer que les données sont dans les colonnes A et B
    chartObj.Chart.ChartType = xlLine
    chartObj.Chart.HasTitle = True
    chartObj.Chart.ChartTitle.Text = "Tendances des ventes"
End Sub
Sub UpdateDashboard()
    Dim selectedRegion As String
    selectedRegion = ThisWorkbook.Sheets("Dashboard").DropDowns(1).List( _
        ThisWorkbook.Sheets("Dashboard").DropDowns(1).ListIndex)
    ' Mettre à jour les données et graphiques en fonction de la région sélectionnée
    Dim filteredData As Range
    Set filteredData = FilterDataByRegion(selectedRegion)
    ' Mettre à jour les graphiques avec les données filtrées
    ' (Vous pouvez ajouter plus de code ici pour filtrer les données dynamiquement et mettre à jour chaque graphique)
End Sub
Function FilterDataByRegion(region As String) As Range
    ' Filtrer les données en fonction de la sélection de la région
    Dim dataRange As Range
    Set dataRange = ThisWorkbook.Sheets("Data").Range("A2:D100") ' Plage de données exemple
    dataRange.AutoFilter Field:=2, Criteria1:=region
    Set FilterDataByRegion = dataRange.SpecialCells(xlCellTypeVisible)
End Function

Explication du Code :
1. CreateInteractiveDashboard : Initialise le tableau de bord, définit le titre, et crée un menu déroulant pour sélectionner la région.
2. CreateInitialCharts : Crée un graphique en courbe initial montrant les tendances des ventes.
3. UpdateDashboard : Une macro qui se déclenche lorsqu’un utilisateur sélectionne une région dans le menu déroulant. Elle filtre les données et met à jour dynamiquement le tableau de bord.
4. FilterDataByRegion : Filtre les données en fonction de la région sélectionnée et renvoie les données visibles (filtrées).
Étape 4 : Assigner des Macros aux Contrôles

  • Lier le menu déroulant : Vous devez associer la macro UpdateDashboard au menu déroulant. Cela déclenchera la mise à jour du tableau de bord lorsque l’utilisateur sélectionne une région.
  • Ajouter d’autres contrôles : Vous pouvez ajouter des boutons, des curseurs ou des cases à cocher pour filtrer davantage les données, mettre à jour les graphiques ou réinitialiser le tableau de bord.

Par exemple, vous pouvez ajouter un bouton pour réinitialiser le tableau de bord :

Sub ResetDashboard()
    ' Réinitialiser tous les filtres et graphiques pour afficher toutes les données
    ThisWorkbook.Sheets("Data").AutoFilterMode = False
    Call CreateInteractiveDashboard ' Recréer le tableau de bord
End Sub

Étape 5 : Tester le Tableau de Bord
Après avoir écrit le code VBA et configuré tous les contrôles :

  • Testez les fonctionnalités : Assurez-vous que les menus déroulants, les filtres et les boutons fonctionnent comme prévu.
  • Vérifiez les erreurs : Assurez-vous que le code ne génère pas d’erreurs lorsque vous interagissez avec différentes parties du tableau de bord.
  • Optimisez les performances : Si l’ensemble de données est volumineux, envisagez d’utiliser des techniques de filtrage plus avancées ou de limiter la quantité de données affichées.

Conseils Supplémentaires :

  • Validation des données : Assurez-vous que les utilisateurs ne peuvent sélectionner que des valeurs valides dans les menus déroulants ou les filtres.
  • Graphiques interactifs : Utilisez VBA pour mettre à jour dynamiquement les plages de données des graphiques.
  • Interface conviviale : Organisez tous les composants du tableau de bord de manière claire et facile à naviguer.

En suivant ces étapes et en utilisant le code VBA fourni, vous pourrez créer un tableau de bord interactif et dynamique sur Excel, adapté à vos données spécifiques.

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