Implémenter un pipeline de transformation de données avancé, Excel VBA

Implémenter un pipeline de transformation de données avancé, Excel VBA

Voici un code VBA détaillé pour implémenter un pipeline de transformation de données avancé dans Excel, avec des explications longues et détaillées.
Scénario
Nous allons créer un pipeline qui effectue les opérations suivantes sur les données :
1. Chargement des données : Importer les données brutes à partir d’une feuille de calcul.
2. Nettoyage des données : Supprimer les lignes vides, gérer les valeurs manquantes et standardiser le texte.
3. Transformation des données : Effectuer des calculs ou des agrégations.
4. Sortie des données : Exporter les données transformées vers une nouvelle feuille de calcul.
Structure du code VBA

Sub PipelineTransformationAvancee()
    ' Déclarer les variables
    Dim wsSource As Worksheet
    Dim wsSortie As Worksheet
    Dim derniereLigne As Long
    Dim i As Long
    Dim valeur As Double
    Dim donneesNettoyees As Collection
    Dim ligneNettoyee As Variant
    Dim compteurLignes As Long
    ' Définir les feuilles de calcul
    Set wsSource = ThisWorkbook.Sheets("DonnéesBrutes") ' Feuille de données brutes
    Set wsSortie = ThisWorkbook.Sheets("DonnéesNettoyées") ' Feuille de sortie des données transformées
    ' Trouver la dernière ligne de données dans la feuille source
    derniereLigne = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
    ' Effacer les données existantes dans la feuille de sortie
    wsSortie.Cells.Clear
    ' Étape 1 : Nettoyage des données
    Set donneesNettoyees = New Collection
    For i = 2 To derniereLigne ' Supposons que la première ligne est celle des en-têtes
        ' Lire les données ligne par ligne
        ligneNettoyee = Application.Transpose(wsSource.Range("A" & i & ":D" & i).Value)
        ' Étape 1.1 : Supprimer les lignes avec des valeurs vides
        If Not IsEmpty(ligneNettoyee(1)) And Not IsEmpty(ligneNettoyee(2)) Then
            ' Étape 1.2 : Gérer les valeurs manquantes (remplacer les cellules vides par la valeur 0)
            For j = 1 To UBound(ligneNettoyee)
                If IsEmpty(ligneNettoyee(j)) Then
                    ligneNettoyee(j) = 0 ' Valeur par défaut pour les données manquantes
                End If
            Next j
            ' Étape 1.3 : Standardiser le texte (supprimer les espaces, mettre en majuscules)
            ligneNettoyee(3) = Trim(UCase(ligneNettoyee(3))) ' Supposons que la colonne C contient le texte à standardiser
            ' Ajouter la ligne nettoyée à la collection
            donneesNettoyees.Add ligneNettoyee
        End If
    Next i
    ' Étape 2 : Transformation des données
    compteurLignes = 1 ' Ligne de départ pour l'affichage des résultats
    For Each ligneNettoyee In donneesNettoyees
        ' Écrire les données nettoyées dans la feuille de sortie
        wsSortie.Cells(compteurLignes, 1).Value = ligneNettoyee(1)
        wsSortie.Cells(compteurLignes, 2).Value = ligneNettoyee(2)
        wsSortie.Cells(compteurLignes, 3).Value = ligneNettoyee(3)
        ' Étape 2.1 : Appliquer une transformation (exemple : appliquer un calcul)
        valeur = ligneNettoyee(2) * 1.1 ' Exemple : appliquer une augmentation de 10% sur la valeur de la deuxième colonne
        wsSortie.Cells(compteurLignes, 4).Value = valeur
        compteurLignes = compteurLignes + 1
    Next ligneNettoyee
    ' Étape 3 : Agrégation (optionnelle)
    ' Par exemple, additionner les valeurs transformées
    Dim total As Double
    total = 0
    For i = 2 To compteurLignes - 1
        total = total + wsSortie.Cells(i, 4).Value
    Next i
    ' Afficher le total dans la ligne suivante
    wsSortie.Cells(compteurLignes, 4).Value = "Total"
    wsSortie.Cells(compteurLignes, 5).Value = total
    MsgBox "Transformation des données terminée !"
End Sub

Explication détaillée de chaque étape
1. Déclaration des variables :

  • wsSource et wsSortie sont des variables qui font référence aux feuilles de calcul source (données brutes) et de sortie (données nettoyées et transformées).
  • derniereLigne permet de trouver la dernière ligne de données dans la feuille source.
  • compteurLignes suit l’avancement de l’écriture des données dans la feuille de sortie.
  • donneesNettoyees est une collection qui contiendra les données après avoir été nettoyées.

2. Définition des feuilles de calcul :

  • wsSource fait référence à la feuille contenant les données brutes (nommée « DonnéesBrutes« ).
  • wsSortie fait référence à la feuille où les données transformées seront affichées (nommée « DonnéesNettoyées« ).

3. Nettoyage des données :

  • On commence par parcourir chaque ligne des données de la feuille wsSource (en commençant par la ligne 2, car la ligne 1 contient des en-têtes).
  • Pour chaque ligne, nous effectuons les actions suivantes :
    • Supprimer les lignes vides : Si la première ou la deuxième colonne est vide, cette ligne est ignorée.
    • Gestion des valeurs manquantes : Si une cellule est vide, elle est remplacée par la valeur par défaut (ici 0).
    • Standardisation du texte : Si la troisième colonne contient du texte, ce texte est d’abord supprimé des espaces avant et après, puis il est mis en majuscules (ex. : « exemple » devient « EXEMPLE »).
  • Les lignes nettoyées sont ensuite ajoutées à la collection donneesNettoyees.

4. Transformation des données :

  • Une fois les données nettoyées, nous les parcourons et nous les écrivons dans la feuille wsSortie.
  • Transformation : Dans cet exemple, nous appliquons une transformation simple où la valeur de la deuxième colonne est augmentée de 10 % et affichée dans la quatrième colonne.
  • Vous pouvez remplacer cette transformation par n’importe quel autre calcul ou opération qui correspond à vos besoins.

5. Agrégation des données (optionnel) :

  • Après la transformation, une agrégation est effectuée. Dans cet exemple, nous additionnons les valeurs de la quatrième colonne (les données transformées) et affichons le total à la fin de la feuille de sortie.
  • Vous pouvez ajuster cette étape pour réaliser d’autres types d’agrégations, comme une moyenne, un comptage, etc.

6. Message de fin :

  • Une fois toutes les étapes terminées, une boîte de message apparaît pour informer l’utilisateur que la transformation des données est terminée.

Comment l’utiliser ?
1. Préparer votre classeur : Assurez-vous que vos données brutes se trouvent dans la feuille « DonnéesBrutes« . Les colonnes doivent être conformes à la structure définie dans le code (par exemple, quatre colonnes : une avec des valeurs numériques, une avec du texte, etc.).
2. Exécuter la macro : Ouvrez l’éditeur VBA (Alt + F11), collez le code dans un nouveau module, puis exécutez-le (F5). Les données nettoyées et transformées seront affichées dans la feuille « DonnéesNettoyées« .
Personnalisation

  • Structure des colonnes : Si votre structure de données est différente, vous pouvez ajuster les plages de colonnes et de lignes dans le code.
  • Logique de transformation : Le code applique actuellement une augmentation de 10 % à la colonne 2. Vous pouvez remplacer cette logique par tout autre calcul ou transformation spécifique à vos besoins.
  • Agrégation : Vous pouvez ajouter d’autres types d’agrégation, comme le calcul de la moyenne, le comptage de valeurs spécifiques, etc.

Ce code vous fournit une base robuste pour implémenter un pipeline de transformation de données avancé en utilisant Excel VBA.

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