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
DataAnalysisTemplateest 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
QueryTablequi 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
RemoveDuplicateset supprime les lignes vides en parcourant chaque ligne et en utilisant la fonctionCountApour 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
SumetAveragede 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
pivotRangeen 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.