Développer des Outils Personnalisés de Comparaison de Données, Excel VBA
Voici un code VBA détaillé pour créer un outil de comparaison de données personnalisé. Cet outil compare deux ensembles de données (plages de cellules) dans Excel, identifie les différences et met en surbrillance les différences dans une troisième colonne. Vous pouvez modifier cela selon vos besoins.
Code VBA :
Sub CompareData() ' Déclaration des variables Dim ws As Worksheet Dim rng1 As Range, rng2 As Range Dim cell1 As Range, cell2 As Range Dim outputCol As Integer Dim match As Boolean ' Définir la feuille de travail où se trouvent les données Set ws = ThisWorkbook.Sheets("Sheet1") ' Définir les plages à comparer (à ajuster selon les besoins) Set rng1 = ws.Range("A2:A10") ' Premier ensemble de données Set rng2 = ws.Range("B2:B10") ' Deuxième ensemble de données ' Définir la colonne où afficher le résultat de la comparaison (ex. colonne C) outputCol = 3 ' Effacer les anciens résultats de comparaison ws.Columns(outputCol).ClearContents ' Boucle à travers chaque cellule du premier ensemble de données For Each cell1 In rng1 match = False ' Réinitialiser le drapeau de correspondance ' Boucle à travers chaque cellule du deuxième ensemble de données For Each cell2 In rng2 If cell1.Value = cell2.Value Then match = True ' Définir le drapeau de correspondance si une correspondance est trouvée Exit For ' Sortir de la boucle dès qu'une correspondance est trouvée End If Next cell2 ' Écrire le résultat de la comparaison dans la colonne de sortie If match Then ws.Cells(cell1.Row, outputCol).Value = "Correspondance" Else ws.Cells(cell1.Row, outputCol).Value = "Pas de correspondance" End If Next cell1 MsgBox "Comparaison terminée" End Sub
Explication :
1. Déclaration des Variables :
- La variable
ws
représente la feuille de travail contenant les données. rng1
etrng2
sont les plages contenant les deux ensembles de données à comparer.outputCol
est la colonne où le résultat de la comparaison sera affiché.cell1
etcell2
représentent les cellules individuelles dans les plagesrng1
etrng2
, respectivement.
2. Définir la Feuille de Travail et les Plages :
- Vous définissez la feuille de travail et les plages en spécifiant la feuille et les plages de cellules que vous souhaitez comparer. Dans l’exemple,
rng1
est la plage A2:A10, etrng2
est la plage B2:B10. Vous pouvez ajuster ces plages selon vos besoins.
3. Effacer les Résultats Précédents :
- Avant de commencer la comparaison, le contenu de la colonne de sortie (colonne C dans cet exemple) est effacé pour garantir qu’aucun ancien résultat ne reste.
4. Boucle de Comparaison :
- Une boucle imbriquée
For Each
est utilisée. La boucle extérieure parcourt chaque cellule derng1
, et la boucle intérieure parcourt chaque cellule derng2
pour vérifier s’il existe une correspondance. - Si une correspondance est trouvée, le drapeau
match
est défini surTrue
, et la boucle est arrêtée immédiatement pour éviter des comparaisons inutiles.
5. Résultat de la Comparaison :
- Après avoir comparé chaque cellule de
rng1
avec toutes les cellules derng2
, le résultat (« Correspondance » ou « Pas de correspondance ») est écrit dans la ligne correspondante de la colonne de sortie (colonne C).
6. Fin de la Comparaison :
- Une fois que toutes les cellules ont été comparées, une boîte de message apparaît pour notifier l’utilisateur que la comparaison est terminée.
Exemple de Résultat :
Ensemble de données 1 (A) | Ensemble de données 2 (B) | Résultat de la comparaison (C) |
100 | 100 | Correspondance |
200 | 300 | Pas de correspondance |
300 | 300 | Correspondance |
400 | 500 | Pas de correspondance |
Dans cet exemple :
- La valeur
100
dans la colonne A correspond à100
dans la colonne B, donc la colonne C affiche « Correspondance ». - La valeur
200
dans la colonne A ne correspond à aucune valeur de la colonne B, donc la colonne C affiche « Pas de correspondance ».
Personnalisation Étendue :
- Vous pouvez étendre l’outil pour gérer des ensembles de données plus complexes, y compris la comparaison de plusieurs colonnes ou lignes, et mettre en surbrillance les cellules correspondantes ou différentes avec des couleurs.
- Ajoutez des options pour ignorer la casse ou traiter les cellules vides afin de rendre la comparaison plus robuste.