Créer un modèle d’analyse de données personnalisé, Excel VBA
Voici un code détaillé en VBA pour créer un modèle d’analyse de données personnalisé dans Excel. Ce modèle comprend l’importation de données, le nettoyage des données, l’analyse de base (par exemple, somme, moyenne), et la création de tableaux croisés dynamiques (TCD) ainsi que de graphiques pour visualiser les données.
Étapes pour créer un modèle d’analyse de données personnalisé :
1. Importation de données : Permet à l’utilisateur d’importer des données depuis un fichier CSV ou Excel dans une feuille spécifique.
2. Nettoyage des données : Supprime les doublons, les lignes vides et applique des règles de nettoyage spécifiques.
3. Analyse de base des données : Effectue des calculs simples tels que la somme, la moyenne, et l’affiche dans la feuille.
4. Création de Tableaux Croisés Dynamiques et Graphiques : Crée des tableaux croisés dynamiques et des graphiques pour analyser et visualiser les données de manière interactive.
5. Automatisation du processus : Utilise VBA pour automatiser toutes les étapes de traitement des données et d’analyse.
Code VBA pour le modèle d’analyse de données personnalisé :
Sub CreateDataAnalysisTemplate() ' 1. Initialisation de la feuille de travail Dim ws As Worksheet Set ws = ThisWorkbook.Sheets.Add ws.Name = "DataAnalysisTemplate" ' 2. Importation des données Dim filePath As String filePath = Application.GetOpenFilename("Fichiers CSV (*.csv), *.csv", , "Sélectionnez un fichier de données") If filePath <> "False" Then ' Importation des données CSV dans la feuille With ws.QueryTables.Add(Connection:="TEXT;" & filePath, Destination:=ws.Range("A1")) .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileCommaDelimiter = True .TextFileSemicolonDelimiter = False .Refresh BackgroundQuery:=False End With End If ' 3. Nettoyage des données ' Suppression des doublons basés sur toutes les colonnes ws.UsedRange.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes ' Suppression des lignes vides Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row Dim i As Long For i = lastRow To 1 Step -1 If WorksheetFunction.CountA(ws.Rows(i)) = 0 Then ws.Rows(i).Delete End If Next i ' 4. Analyse de base des données ' Calcul de la somme et de la moyenne d'une colonne exemple (Colonne B) Dim sumValue As Double sumValue = Application.WorksheetFunction.Sum(ws.Range("B2:B" & lastRow)) Dim avgValue As Double avgValue = Application.WorksheetFunction.Average(ws.Range("B2:B" & lastRow)) ' Affichage des résultats dans la feuille ws.Range("E1").Value = "Somme de la colonne B :" ws.Range("F1").Value = sumValue ws.Range("E2").Value = "Moyenne de la colonne B :" ws.Range("F2").Value = avgValue ' 5. Création d'un Tableau Croisé Dynamique Dim pivotRange As Range Set pivotRange = ws.Range("A1").CurrentRegion Dim pivotSheet As Worksheet Set pivotSheet = ThisWorkbook.Sheets.Add pivotSheet.Name = "PivotAnalysis" ' Création du tableau croisé dynamique Dim pivotTable As PivotTable Set pivotTable = pivotSheet.PivotTableWizard(SourceType:=xlDatabase, SourceData:=pivotRange) ' 6. Création d'un graphique Dim chartObj As ChartObject Set chartObj = ws.ChartObjects.Add(Left:=200, Width:=375, Top:=75, Height:=225) chartObj.Chart.SetSourceData Source:=ws.Range("A1:B" & lastRow) chartObj.Chart.ChartType = xlColumnClustered ' 7. Ajustements finaux et mise en forme ws.Columns.AutoFit ws.Rows(1).Font.Bold = True pivotSheet.Columns.AutoFit MsgBox "Modèle d'analyse de données créé avec succès !", vbInformation End Sub
Explication du code :
1. Initialisation de la feuille de travail :
- Une nouvelle feuille nommée
DataAnalysisTemplate
est ajoutée pour contenir toutes les données et les analyses.
2. Importation des données :
- Un dialogue de fichier est ouvert pour sélectionner un fichier CSV. Les données sont ensuite importées dans la feuille via une
QueryTable
qui divise les données en colonnes en fonction des virgules.
3. Nettoyage des données :
- Le code supprime les doublons en utilisant la méthode
RemoveDuplicates
et supprime les lignes vides en parcourant chaque ligne et en utilisant la fonctionCountA
pour vérifier s’il y a des données.
4. Analyse de base des données :
- Le code calcule la somme et la moyenne des valeurs de la colonne B en utilisant les fonctions
Sum
etAverage
de VBA. Ces résultats sont ensuite affichés dans les cellules de la feuille.
5. Création d’un Tableau Croisé Dynamique :
- Un tableau croisé dynamique est créé à partir des données dans la plage définie par
pivotRange
en utilisant la méthodePivotTableWizard
. Ce TCD est placé dans une nouvelle feuillePivotAnalysis
.
6. Création d’un graphique :
- Un graphique de type histogramme est créé pour visualiser les données des colonnes A et B. Le graphique est placé dans la feuille des données.
7. Mise en forme et ajustements finaux :
- Les colonnes sont automatiquement ajustées pour une meilleure lisibilité, la première ligne est mise en gras, et la feuille du tableau croisé dynamique est également mise en forme.
Comment utiliser le modèle :
1. Exécutez la macro CreateDataAnalysisTemplate
.
2. Sélectionnez un fichier CSV pour importer les données.
3. Les données seront nettoyées, l’analyse de base sera effectuée, et un tableau croisé dynamique ainsi qu’un graphique seront générés automatiquement.
Ce modèle peut être personnalisé davantage en ajoutant des fonctionnalités d’analyse plus avancées, telles que des analyses de régression, des lignes de tendance, ou des configurations plus complexes de tableaux croisés dynamiques, en fonction de vos besoins spécifiques.