Créer un modèle d’analyse de données personnalisé, Excel VBA

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 fonction CountA 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 et Average 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éthode PivotTableWizard. Ce TCD est placé dans une nouvelle feuille PivotAnalysis.

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.

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