Développer des Outils Personnalisés de Comparaison de Données, Excel VBA

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 et rng2 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 et cell2 représentent les cellules individuelles dans les plages rng1 et rng2, 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, et rng2 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 de rng1, et la boucle intérieure parcourt chaque cellule de rng2 pour vérifier s’il existe une correspondance.
  • Si une correspondance est trouvée, le drapeau match est défini sur True, 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 de rng2, 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.
Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x