Automatiser les processus d’analyse des données, Excel VBA

Automatiser les processus d’analyse des données, Excel VBA
Automatiser les processus d’analyse des données dans Excel en utilisant VBA (Visual Basic for Applications) peut considérablement accélérer votre travail. Voici un exemple détaillé de code VBA pour automatiser certaines étapes courantes d’analyse de données telles que la lecture des données, le nettoyage, la création de résumés statistiques et l’exécution de calculs.
Scénario :
Imaginons que vous ayez un jeu de données dans une feuille de calcul Excel avec plusieurs colonnes, et que vous souhaitiez :
1. Nettoyer les données (par exemple, supprimer les lignes vides ou les doublons).
2. Calculer des statistiques de base (moyenne, somme, écart-type) pour certaines colonnes.
3. Générer un résumé avec ces statistiques dans une nouvelle feuille.
Voici le code VBA détaillé avec explications.
Code VBA détaillé :
1. Ouvrir l’éditeur VBA :
Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA dans Excel.
Cliquez sur Insertion > Module pour créer un nouveau module.
2. Code VBA :

Sub AnalyserDonnees()
' Déclarations des variables
Dim wsData As Worksheet
Dim wsSummary As Worksheet
Dim lastRow As Long
Dim rng As Range
Dim moyenne As Double, somme As Double, ecartType As Double
Dim cell As Range
' Définir la feuille contenant les données (changer le nom selon votre fichier)
Set wsData = ThisWorkbook.Sheets("Données") ' Remplacez "Données" par le nom de votre feuille de données
' Ajouter une nouvelle feuille pour le résumé des analyses
On Error Resume Next ' Si la feuille existe déjà, on ignore l'erreur
Set wsSummary = ThisWorkbook.Sheets("Résumé")
On Error GoTo 0 ' Réinitialiser la gestion d'erreur
If wsSummary Is Nothing Then
Set wsSummary = ThisWorkbook.Sheets.Add
wsSummary.Name = "Résumé"
End If
' Trouver la dernière ligne utilisée dans la feuille de données
lastRow = wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row
' Nettoyage des données : suppression des lignes vides
Set rng = wsData.Range("A1:A" & lastRow)
For Each cell In rng
If IsEmpty(cell.Value) Then
cell.EntireRow.Delete
End If
Next cell
' Trouver à nouveau la dernière ligne après suppression
lastRow = wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row
' Suppression des doublons dans la plage de données
wsData.Range("A1:E" & lastRow).RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5), Header:=xlYes
' Calcul des statistiques pour une colonne donnée (ex. colonne B)
' Calcul de la moyenne
moyenne = Application.WorksheetFunction.Average(wsData.Range("B2:B" & lastRow))
' Calcul de la somme
somme = Application.WorksheetFunction.Sum(wsData.Range("B2:B" & lastRow))
' Calcul de l'écart-type
ecartType = Application.WorksheetFunction.StDev(wsData.Range("B2:B" & lastRow))
' Affichage des résultats dans la feuille Résumé
wsSummary.Cells(1, 1).Value = "Statistiques pour la colonne B"
wsSummary.Cells(2, 1).Value = "Moyenne"
wsSummary.Cells(2, 2).Value = moyenne
wsSummary.Cells(3, 1).Value = "Somme"
wsSummary.Cells(3, 2).Value = somme
wsSummary.Cells(4, 1).Value = "Écart-type"
wsSummary.Cells(4, 2).Value = ecartType
' Message de fin
MsgBox "Analyse des données terminée !"
End Sub

Explication du code :
1. Déclarations des variables :
wsData et wsSummary sont des objets représentant les feuilles de calcul contenant les données et le résumé.
lastRow est la dernière ligne utilisée dans la feuille de données (utile pour définir la plage de données à analyser).
rng représente la plage de données que nous voulons analyser.
moyenne, somme, et ecartType sont des variables qui stockent les résultats des statistiques calculées.
2. Accéder aux feuilles de calcul :
wsData fait référence à la feuille contenant les données à analyser.
wsSummary est une nouvelle feuille créée pour afficher le résumé des statistiques. Si elle existe déjà, le code la récupère ; sinon, il la crée.
3. Nettoyage des données :
La première étape consiste à supprimer les lignes vides. La fonction IsEmpty vérifie si une cellule est vide, et cell.EntireRow.Delete supprime la ligne entière si c’est le cas.
Ensuite, nous supprimons les doublons dans la plage de données spécifiée (wsData.Range(« A1:E » & lastRow)), en utilisant RemoveDuplicates.
4. Calcul des statistiques :

La fonction Application.WorksheetFunction.Average calcule la moyenne pour la colonne B (vous pouvez ajuster cela pour d’autres colonnes).
La somme est calculée avec Application.WorksheetFunction.Sum.
L’écart-type est calculé avec Application.WorksheetFunction.StDev.
5. Affichage des résultats :
Les résultats des statistiques sont affichés dans la feuille Résumé à partir de la cellule A1.
6. Message de fin :
Une boîte de message s’affiche lorsque le processus est terminé.
Pour exécuter le code :
1. Une fois le code inséré, vous pouvez exécuter la macro en appuyant sur Alt + F8, en sélectionnant AnalyserDonnees, puis en cliquant sur Exécuter.
Extension possible :
Ce code peut être étendu pour :
• Analyser plusieurs colonnes.
• Générer des graphiques automatiquement (par exemple, histogrammes, diagrammes de dispersion).
• Automatiser des calculs plus complexes (régressions, tests statistiques).
Cela vous offre un bon point de départ pour automatiser l’analyse des données dans Excel en utilisant VBA.

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