Créer un outil personnalisé de déduplication de données, Excel VBA
Voici une explication détaillée et un guide étape par étape pour créer un outil personnalisé de déduplication de données dans Excel à l’aide de VBA.
Étape 1 : Ouvrir Excel et l’Éditeur Visual Basic
1. Ouvrez Excel.
2. Appuyez sur Alt + F11 pour ouvrir l’éditeur Visual Basic pour Applications (VBA).
3. Dans l’éditeur, cliquez sur Insertion > Module pour créer un nouveau module où vous écrirez votre code.
Étape 2 : Écrire le code VBA
Voici le code VBA qui vous aidera à développer un outil de déduplication de données dans Excel.
Sub DeduplicateData() Dim ws As Worksheet Dim dataRange As Range Dim lastRow As Long Dim dict As Object Dim i As Long Dim cellValue As Variant ' Définir la feuille de calcul comme étant la feuille active Set ws = ActiveSheet ' Trouver la dernière ligne de données dans la colonne A (en supposant que les données commencent à A1) lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Définir la plage de données (de A1 à la dernière ligne de la colonne A) Set dataRange = ws.Range("A1:A" & lastRow) ' Créer un objet dictionnaire pour suivre les valeurs uniques Set dict = CreateObject("Scripting.Dictionary") ' Boucler à travers la plage de données For i = 1 To dataRange.Rows.Count cellValue = dataRange.Cells(i, 1).Value ' Si la valeur n'est pas dans le dictionnaire, l'ajouter If Not dict.exists(cellValue) And cellValue <> "" Then dict.Add cellValue, Nothing End If Next i ' Effacer les données existantes dans la colonne A dataRange.ClearContents ' Réécrire les valeurs uniques dans la colonne A ws.Range("A1").Resize(dict.Count, 1).Value = Application.Transpose(dict.Keys) MsgBox "Déduplication des données terminée !" End Sub
Étape 3 : Comprendre le Code
1. Déclarer les Variables
ws
: Un objetWorksheet
pour représenter la feuille active.dataRange
: Un objetRange
pour définir la plage de cellules que vous souhaitez vérifier pour les doublons.lastRow
: Une variable pour déterminer la dernière ligne de données dans la colonne.dict
: Un objetDictionary
(de la bibliothèque Scripting Runtime) pour stocker les valeurs uniques.i
: Un compteur de boucle.cellValue
: Une variable pour stocker la valeur de chaque cellule lors de l’itération dans la plage.
2. Définir la Feuille Active et la Plage de Données
- Le code définit la variable
ws
comme étant la feuille active. - Il détermine ensuite la
lastRow
en fonction de la dernière cellule non vide de la colonne A.
3. Créer le Dictionnaire
- Un objet dictionnaire est utilisé pour stocker les valeurs uniques. Les dictionnaires sont idéaux pour la déduplication, car ils ne permettent que des clés uniques.
4. Boucler à Travers les Données
- La boucle parcourt toute la plage de données. Pour chaque valeur, le code vérifie si elle est déjà présente dans le dictionnaire. Si ce n’est pas le cas, il l’ajoute.
5. Effacer les Données Existantes
- Le contenu de la plage d’origine est effacé pour supprimer les doublons.
6. Réécrire les Valeurs Uniques
- Enfin, les valeurs uniques (les clés du dictionnaire) sont réécrites dans la feuille de calcul, à partir de la cellule A1.
7. Afficher un Message
- Après la fin du processus, une boîte de message informe l’utilisateur que la déduplication est terminée.
Étape 4 : Exécuter la Macro
1. Pour exécuter la macro, appuyez sur Alt + F8 dans Excel pour ouvrir la boîte de dialogue « Macro ».
2. Sélectionnez la macro DeduplicateData
et cliquez sur Exécuter.
Résultat Attendu
- Avant d’exécuter la macro : Vous aurez une liste de données dans la colonne A, avec des doublons possibles.
- Après avoir exécuté la macro : Les doublons seront supprimés, et seules les valeurs uniques resteront dans la colonne A, à partir de la cellule A1.
Conclusion
Cette macro est un moyen simple mais puissant de dédupliquer des données dans Excel. Vous pouvez la personnaliser davantage pour effectuer la déduplication en fonction de différentes colonnes ou ajouter une logique supplémentaire pour conserver la première occurrence d’une valeur. Le dictionnaire garantit que seules des valeurs uniques sont conservées, ce qui rend cette méthode très efficace pour les grands ensembles de données.