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
wsreprésente la feuille de travail contenant les données. rng1etrng2sont les plages contenant les deux ensembles de données à comparer.outputColest la colonne où le résultat de la comparaison sera affiché.cell1etcell2représentent les cellules individuelles dans les plagesrng1etrng2, 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,
rng1est la plage A2:A10, etrng2est 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 Eachest utilisée. La boucle extérieure parcourt chaque cellule derng1, et la boucle intérieure parcourt chaque cellule derng2pour vérifier s’il existe une correspondance. - Si une correspondance est trouvée, le drapeau
matchest 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
rng1avec 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
100dans la colonne A correspond à100dans la colonne B, donc la colonne C affiche « Correspondance ». - La valeur
200dans 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.