Suppression caractère non présents dans une liste

Bonjour à tous,

Tout d’abord merci de m'avoir aidé sur mes différents blocage précédent . Je suis encore bloqué , cette fois c'est pour effectuer une suppression de ligne dont les cellules de la première colonne sont différentes d'une colonne de référence situer sur une autre feuille.

Concrètement: j'ai un fichier .txt qui est insérer sur une feuille excel "Liste des charges", dans ce fichier ce trouve la première colonne avec des caractères, ex: FA, RF, CD, AT...... commencent a la ligne "A4"

Sur une autre feuille"Supp-tri" j'ai fais une liste de ces caractères que je souhaite conserver Ligne "A2 à la ligne A41(pouvant être augmenter au besoin".

Mon problème l'utilisation de"IF Not"dans cette portion de macro

    Dim Ws1, Ws2 As Worksheet
    Dim Liste As Range
    Dim c
    Dim Derlig
    Dim Ligne
    Set Ws1 = Sheets("Liste des charges"): Set Ws2 = Sheets("Supp-tri")
    Set Liste = Ws2.Range("A2:A50")
            Derlig = Ws1.Range("A65536").End(xlUp).Row
    For Each c In Liste
        For Ligne = Derlig To 4 Step -1
            If Not Ws1.Cells(Ligne, 1).Value = UCase(c) Then
            Ws1.Cells(Ligne, 1).EntireRow.Delete
            End If
        Next Ligne
    Next

Cette macro fonctionne sans le "Not" mais je souhaite faire l'inverse de ce qu'elle fait aujourd'hui: Aujourd'hui elle supprime les lignes dont les caractères de la colonne A contiennent les caractères présent dans cette liste.

J'ai juste ajouter le Not dans la fonction IF, mais cela ne fonctionne pas.

Pouvez-vous m'aider svp

Bonjour,

Je verrais plutôt ainsi :

    Dim del As Boolean
    ...
    For Ligne = Derlig To 4 Step -1
        del = True
        For Each c In Liste
            If Ws1.Cells(Ligne, 1).Value = UCase(c) Then del = False: Exit For
        Next c
        If del Then Ws1.Cells(Ligne, 1).EntireRow.Delete
    Next Ligne

Cordialement.

Merci de votre réactivité cela fonctionne parfaitement

Rechercher des sujets similaires à "suppression caractere presents liste"