Développer un Outil de Profilage de Données Personnalisé, Excel VBA

Développer un Outil de Profilage de Données Personnalisé, Excel VBA
Qu’est-ce que le Profilage de Données ?
Le profilage de données consiste à examiner les données disponibles dans une source de données (par exemple, une feuille Excel) et à résumer ses caractéristiques. L’objectif est de comprendre la structure, la qualité et le contenu des données. Les tâches courantes dans le profilage de données incluent la vérification des valeurs manquantes, des doublons, des types de données, des statistiques de base (minimum, maximum, moyenne) et l’identification des valeurs inhabituelles ou des anomalies.
Objectif
Nous allons créer un outil de profilage de données personnalisé dans Excel en utilisant VBA. Cet outil va :
1. Analyser les données dans une feuille Excel.
2. Identifier les métriques courantes du profilage des données, telles que :

  • Valeurs manquantes ou vides
  • Doublons
  • Incohérences de type de données
  • Statistiques de base (ex. : Min, Max, Moyenne, Comptage)

3. Présenter les résultats dans une nouvelle feuille pour une revue facile.
Code VBA pour l’Outil de Profilage de Données
Étape 1 : Créer un Nouveau Module VBA
Pour commencer, appuyez sur Alt + F11 pour ouvrir l’éditeur VBA. Ensuite, allez dans Insertion > Module pour créer un nouveau module.
Étape 2 : Écrire le Code du Profilage
Collez le code suivant dans le module.

Sub ProfilageDonnees()
    Dim ws As Worksheet
    Dim feuilleProfilage As Worksheet
    Dim plage As Range
    Dim nbLignes As Long
    Dim nbColonnes As Long
    Dim indexColonne As Integer
    Dim cellule As Range
    Dim dictionnaireDonnees As Object
    Dim valeur As Variant
    Dim compteVide As Long
    Dim compteDoublon As Long
    Dim minVal As Variant
    Dim maxVal As Variant
    Dim moyVal As Double
    Dim compteVal As Long
    Dim msgErreur As String
    ' Initialiser le dictionnaire pour suivre les données des colonnes
    Set dictionnaireDonnees = CreateObject("Scripting.Dictionary")
    ' Demander à l'utilisateur de sélectionner la feuille à profiler
    On Error Resume Next
    Set ws = Application.InputBox("Sélectionnez une feuille à profiler :", Type:=8)
    On Error GoTo 0
    ' Vérifier si une feuille a été sélectionnée
    If ws Is Nothing Then
        MsgBox "Aucune feuille sélectionnée. Fin de l'outil de profilage.", vbExclamation
        Exit Sub
    End If
    ' Créer une nouvelle feuille pour afficher les résultats du profilage
    Set feuilleProfilage = ThisWorkbook.Sheets.Add
    feuilleProfilage.Name = "Profilage Données"
    ' Écrire l'en-tête dans la feuille de profilage
    feuilleProfilage.Cells(1, 1).Value = "Nom de la Colonne"
    feuilleProfilage.Cells(1, 2).Value = "Valeurs Manquantes"
    feuilleProfilage.Cells(1, 3).Value = "Valeurs Doublons"
    feuilleProfilage.Cells(1, 4).Value = "Valeur Min"
    feuilleProfilage.Cells(1, 5).Value = "Valeur Max"
    feuilleProfilage.Cells(1, 6).Value = "Valeur Moyenne"
    feuilleProfilage.Cells(1, 7).Value = "Nombre de Valeurs"
    ' Récupérer la plage de données (cellules non vides)
    Set plage = ws.UsedRange
    nbLignes = plage.Rows.Count
    nbColonnes = plage.Columns.Count
    ' Boucler à travers chaque colonne pour collecter les données de profilage
    For indexColonne = 1 To nbColonnes
        compteVide = 0
        compteDoublon = 0
        minVal = ""
        maxVal = ""
        moyVal = 0
        compteVal = 0
        ' Initialiser le dictionnaire pour suivre les doublons
        Set dictionnaireDonnees = CreateObject("Scripting.Dictionary")
        ' Boucler à travers chaque ligne de la colonne
        For Each cellule In plage.Columns(indexColonne).Cells
            ' Vérifier les valeurs manquantes (cellules vides)
            If IsEmpty(cellule.Value) Then
                compteVide = compteVide + 1
            Else
                ' Suivre les valeurs pour les doublons
                If dictionnaireDonnees.Exists(cellule.Value) Then
                    compteDoublon = compteDoublon + 1
                Else
                    dictionnaireDonnees.Add cellule.Value, Nothing
                End If
                ' Suivre les min, max et moyenne pour les données numériques
                If IsNumeric(cellule.Value) Then
                    If minVal = "" Or cellule.Value < minVal Then minVal = cellule.Value If maxVal = "" Or cellule.Value > maxVal Then maxVal = cellule.Value
                    moyVal = moyVal + cellule.Value
                    compteVal = compteVal + 1
                End If
            End If
        Next cellule
        ' Calculer la moyenne si des valeurs numériques existent
        If compteVal > 0 Then moyVal = moyVal / compteVal
        ' Afficher les résultats du profilage dans la feuille
        feuilleProfilage.Cells(indexColonne + 1, 1).Value = plage.Cells(1, indexColonne).Value
        feuilleProfilage.Cells(indexColonne + 1, 2).Value = compteVide
        feuilleProfilage.Cells(indexColonne + 1, 3).Value = compteDoublon
        feuilleProfilage.Cells(indexColonne + 1, 4).Value = minVal
        feuilleProfilage.Cells(indexColonne + 1, 5).Value = maxVal
        feuilleProfilage.Cells(indexColonne + 1, 6).Value = moyVal
        feuilleProfilage.Cells(indexColonne + 1, 7).Value = compteVal
    Next indexColonne
    ' Ajuster automatiquement la largeur des colonnes pour une meilleure lisibilité
    feuilleProfilage.Columns("A:G").AutoFit
    ' Informer l'utilisateur que le profilage est terminé
    MsgBox "Profilage des données terminé ! Consultez la feuille 'Profilage Données' pour les résultats.", vbInformation
End Sub

Explication du Code
1. Création de la Feuille de Profilage

  • Le code commence par demander à l’utilisateur de sélectionner la feuille à profiler via une boîte de saisie. Si aucune feuille n’est sélectionnée, le programme s’arrête.
  • Une nouvelle feuille « Profilage Données » est ensuite créée pour afficher les résultats du profilage.

2. Profilage de Chaque Colonne

  • Le code parcourt chaque colonne de la feuille sélectionnée et vérifie les éléments suivants :
  • Valeurs manquantes (cellules vides) : cela est effectué en utilisant IsEmpty(cellule.Value).
  • Doublons : Un dictionnaire (dictionnaireDonnees) est utilisé pour suivre les valeurs déjà rencontrées.
  • Analyse numérique (seulement pour les données numériques) : Il calcule la valeur minimale, la valeur maximale, la moyenne ainsi que le nombre de valeurs numériques.

3. Écriture des Résultats du Profilage

  • Les résultats pour chaque colonne sont écrits dans la nouvelle feuille « Profilage Données ». Les données incluent :
  • Le nom de la colonne
  • Le nombre de valeurs manquantes
  • Le nombre de doublons
  • La valeur minimale
  • La valeur maximale
  • La moyenne
  • Le nombre de valeurs

4. Formatage et Finalisation

  • Une fois le profilage terminé, les colonnes de la feuille « Profilage Données » sont ajustées automatiquement pour être plus lisibles.
  • Enfin, une boîte de message informe l’utilisateur que le profilage est terminé.

Comment Utiliser l’Outil
1. Ouvrez Excel et appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
2. Insérez un nouveau module (Insertion > Module).
3. Collez le code fourni dans le module.
4. Appuyez sur F5 ou exécutez la macro ProfilageDonnees pour démarrer le profilage.
5. Suivez les invites et sélectionnez la feuille à analyser.
6. Consultez la feuille « Profilage Données » pour les résultats.
Améliorations et Personnalisation

  • Statistiques supplémentaires : Vous pouvez ajouter des mesures statistiques plus avancées, comme l’écart type, la médiane ou le mode.
  • Vérification du type de données : La version actuelle vérifie uniquement les données numériques. Vous pouvez l’étendre pour vérifier les dates ou les motifs de texte (par exemple, à l’aide d’expressions régulières pour les adresses e-mail ou les numéros de téléphone).
  • Visualisation des Données : Vous pouvez créer des graphiques ou utiliser une mise en forme conditionnelle pour mettre en évidence les données problématiques (par exemple, un pourcentage élevé de valeurs manquantes ou de doublons).

Cet outil vous permettra de profiler vos données dans Excel et peut être facilement personnalisé pour répondre à des besoins spécifiques.

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