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 :
- Analyser un jeu de données en affichant des statistiques de base (moyenne, somme, écart-type, etc.).
- Filtrer les données selon des critères définis par l’utilisateur.
- 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 | 5 | 50 |
02/01/2024 | Produit B | 15 | 6 | 90 |
… | … | … | … | … |
Étape 2: Ajouter un module VBA
- Ouvrez Excel.
- 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).
- 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
- Revenez à Excel et assurez-vous que la feuille « Données » contient des données dans les colonnes appropriées.
- 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.