Supprimer ligne si valeur n'est pas présente dans une colonne précise

Bonjour à tous,

Je travaille actuellement sur un fichier sur lequel je bloque, étant assez limité techniquement en VBA.

Sur ma feuille 1, j'ai plusieurs lignes d'infos sur des véhicules, avec leur plaque d'immatriculation en colonne E.

Sur ma feuille 2, j'ai des milliers de lignes d'événements liés à des véhicules, dont l'immatriculation associée est en colonne G.

Je souhaiterais, via une macro, supprimer toutes les lignes de la feuille 2 dont l'immatriculation associée en colonne G n'est pas présente dans la feuille 1 en colonne E.

Sur les deux feuilles, les infos commencent en ligne 2 (ligne 1 = en-têtes)

Pouvez-vous m'aider sur ce point ?

Excellente journée,

Bonjour,

A tester sur une copie de ton classeur. Adaptes les noms des feuilles si différents de "Feuil1" et "Feuil2" :

Sub Test()

    Dim PlgImmat As Range
    Dim PlgRecherche As Range
    Dim CelImmat As Range
    Dim I As Long

    'défini la plage en colonne E de la feuille "Feuil1" à partir de E2
    '(Sur ma feuille 1, j'ai plusieurs lignes d'infos sur des véhicules, avec leur plaque d'immatriculation en colonne E.)
    With Worksheets("Feuil1"): Set PlgImmat = .Range(.Cells(2, 5), .Cells(.Rows.Count, 5).End(xlUp)): End With

    'défini la plage en colonne G de la feuille "Feuil2" à partir de G2
    '(Sur ma feuille 2, j'ai des milliers de lignes d'événements liés à un véhicule, dont l'immatriculation associée est en colonne G.)
    With Worksheets("Feuil2"): Set PlgRecherche = .Range(.Cells(2, 7), .Cells(.Rows.Count, 7).End(xlUp)): End With

    'pour la suppression, commencer par le bas de la plage
    For I = PlgRecherche.Count To 1 Step -1

        'effectue la recherche exacte...
        Set CelImmat = PlgImmat.Find(PlgRecherche(I, 1).Value, , xlValues, xlWhole)

        'si pas trouvée, suppression
        If CelImmat Is Nothing Then PlgRecherche(I, 1).EntireRow.Delete

    Next I

End Sub

Bonjour Thèze,

Un grand merci pour ton message, la macro fonctionne parfaitement !!

Merci infiniment !!!

Excellente journée,

Content de t'avoir aidé

Rechercher des sujets similaires à "supprimer ligne valeur pas presente colonne precise"