Créer des outils d’analyse de données personnalisés, Excel VBA

Créer des outils d’analyse de données personnalisés, Excel VBA

Créer des outils d’analyse de données personnalisés dans Excel à l’aide de VBA (Visual Basic for Applications) est une excellente manière d’automatiser des tâches répétitives, de personnaliser des rapports et d’effectuer des analyses complexes. Voici un guide détaillé avec un exemple de code VBA qui crée un outil d’analyse de données personnalisé, permettant d’analyser un jeu de données en effectuant des calculs statistiques, des filtrages et des résumés. 

Objectif 

Nous allons créer un outil qui permet à l’utilisateur de : 

  1. Analyser un jeu de données en affichant des statistiques de base (moyenne, somme, écart-type, etc.). 
  2. Filtrer les données selon des critères définis par l’utilisateur. 
  3. Générer un résumé personnalisé des données analysées. 

Étape 1: Préparer le fichier Excel 

Avant de commencer le code VBA, vous devez avoir un fichier Excel avec les données. Supposons que vos données se trouvent sur une feuille intitulée « Données », avec des en-têtes de colonnes en A1, B1, C1, …. Par exemple : 

Date  Produit  Quantité  Prix unitaire  Total 
01/01/2024  Produit A  10  50 
02/01/2024  Produit B  15  90 
…  …  …  …  … 

Étape 2: Ajouter un module VBA 

  1. Ouvrez Excel. 
  2. Allez dans l’onglet Développeur > Visual Basic (si l’onglet Développeur n’est pas visible, vous pouvez l’activer dans les options d’Excel). 
  3. Dans l’éditeur VBA, faites un clic droit sur VBAProject (nom de votre fichier) dans le panneau de gauche, puis Insérer > Module

Étape 3: Créer le code VBA 

Voici un exemple de code VBA qui crée un outil d’analyse personnalisé. 

Sub AnalyserDonnees() 
    ' Déclaration des variables 
    Dim ws As Worksheet 
    Dim plageDonnees As Range 
    Dim moyenne As Double 
    Dim somme As Double 
    Dim ecartType As Double 
    Dim totalQuantite As Double 
    Dim totalPrix As Double 
    Dim filtreProduit As String 
    Dim cellule As Range 
    ' Définir la feuille de travail des données 
    Set ws = ThisWorkbook.Sheets("Données") 
    ' Définir la plage de données (en supposant que les données commencent à la ligne 2) 
    Set plageDonnees = ws.Range("A2:E" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row) 
    ' Calcul des statistiques globales 
    moyenne = Application.WorksheetFunction.Average(plageDonnees.Columns(4)) ' Colonne Prix Unitaire 
    somme = Application.WorksheetFunction.Sum(plageDonnees.Columns(5)) ' Colonne Total 
    ecartType = Application.WorksheetFunction.StDev(plageDonnees.Columns(4)) ' Colonne Prix Unitaire 
    totalQuantite = Application.WorksheetFunction.Sum(plageDonnees.Columns(3)) ' Colonne Quantité 
    totalPrix = Application.WorksheetFunction.Sum(plageDonnees.Columns(4)) * totalQuantite ' Calcul du total Prix 
    ' Affichage des résultats 
    MsgBox "Statistiques globales:" & vbCrLf & _ 
           "Moyenne du prix unitaire: " & moyenne & vbCrLf & _ 
           "Somme du total des ventes: " & somme & vbCrLf & _ 
           "Ecart-type des prix unitaires: " & ecartType & vbCrLf & _ 
           "Total des quantités vendues: " & totalQuantite & vbCrLf & _ 
           "Total des ventes (quantité * prix unitaire): " & totalPrix, vbInformation, "Analyse des données" 
    ' Demander à l'utilisateur de saisir un critère pour filtrer par produit 
    filtreProduit = InputBox("Entrez le nom du produit à filtrer (laisser vide pour tout afficher):") 
    ' Si un critère de produit est donné, filtrer les données 
    If filtreProduit <> "" Then 
        plageDonnees.AutoFilter Field:=2, Criteria1:=filtreProduit 
    Else 
        ws.AutoFilterMode = False ' Annuler le filtre si aucune valeur n'est saisie 
    End If 
    ' Résumer les données filtrées 
    MsgBox "Résumé de l'analyse pour le produit '" & filtreProduit & "':" & vbCrLf & _ 
           "Quantité totale vendue: " & Application.WorksheetFunction.Subtotal(9, plageDonnees.Columns(3)) & vbCrLf & _ 
           "Total des ventes pour ce produit: " & Application.WorksheetFunction.Subtotal(9, plageDonnees.Columns(5)), vbInformation, "Résumé du produit"  
End Sub

Explication du Code 

1. Déclaration des variables

  • ws fait référence à la feuille de calcul contenant les données. 
  • plageDonnees est la plage contenant les données de votre tableau. 
  • Les autres variables (moyenne, somme, ecartType, etc.) stockent les résultats des calculs statistiques. 

2. Calcul des statistiques globales

  • moyenne : Moyenne des prix unitaires. 
  • somme : Somme totale des ventes (colonne Total). 
  • ecartType : Écart-type des prix unitaires. 
  • totalQuantite et totalPrix : Somme des quantités et calcul du total des ventes. 

3. Affichage des résultats

  • Un message affiche les statistiques calculées (moyenne, somme, écart-type, etc.). 

4. Filtrage par produit

  • Une boîte de saisie (InputBox) permet à l’utilisateur d’entrer le nom du produit à filtrer. 
  • Si un produit est spécifié, la plage de données est filtrée pour ne montrer que les lignes correspondant à ce produit. 

5. Résumé des données filtrées

  • Après le filtrage, un résumé est généré, indiquant la quantité totale et le total des ventes pour le produit filtré. 

Étape 4: Exécuter le code 

  1. Revenez à Excel et assurez-vous que la feuille « Données » contient des données dans les colonnes appropriées. 
  2. Appuyez sur Alt + F8, sélectionnez AnalyserDonnees, puis cliquez sur Exécuter

Étape 5: Personnalisation 

  • Vous pouvez ajuster le code pour inclure d’autres statistiques, ajouter des graphiques, ou même exporter les résultats dans un autre fichier Excel. 
  • Vous pouvez également adapter les colonnes à analyser en fonction de votre structure de données. 

Conclusion 

Ce code VBA vous permet de créer un outil d’analyse de données personnalisé dans Excel. Vous pouvez l’adapter à différents types de jeux de données et enrichir les fonctionnalités en fonction de vos besoins. 

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