Supprimer des lignes en fonction d'une liste autre feuille

Bonjour à tous,

Voila mon problème, je souhaiterai faire une macro pour supprimer des lignes de la feuille "Feuil1", dont la colonne "B" à partir de la ligne 5, (avec un nombre de ligne variant), contient des caractères ex: MC ET, MC PT, MC PM .... En sachant que sa ne sera pas toujours MC en caractère fixe.

J'ai référencer une liste des caractères à supprimer sur une autre feuille (nommée: "Supp Trie"), ces caractère sont les suivant: ET, PT, PM .... Cette liste ne sera pas figée, on devra pouvoir y rajouter des caractères.

Je voudrai que cette macro prenne chaque cellule de la colonne "B" à partir de la ligne 5, de la feuille "Feuil1"; et la compare à la liste des caractères à supprimer, de la colonne "B" à partir de la ligne 2, sur la feuille "Supp Trie". Puis si un caractère correspond alors supprimer la ligne.

Je vous remercie d'avance pour toute l'aide que vous pouvez m'apportez.

Bonjour,

et nous n'avons pas droit à une copie anonymisée de ton fichier ?

P.

Oui bien sur, la macro actuelle est en cours de création j'ai débuté récemment la création de macro désoler si ça pique les yeux

106test-trie.xlsm (121.22 Ko)

Petite erreur ce n'est pas la colonne "B" mais la colonne "A" à aller chercher dans la feuille "Supp Trie"

Bonjour

ceci te convient ?

(il y a mieux c'est sur mais si peu de lignes, ça fonctionne)

Option Explicit
Sub Test_Supp()
Dim Ws1, Ws2 As Worksheet
Dim Liste As Range
Dim C
Dim Del
Dim Derlig
Dim Ligne
Set Ws1 = Sheets("feuil1"): Set Ws2 = Sheets("supp trie")
Set Liste = Ws2.Range("A2:A" & Ws2.[A65000].End(xlUp).Row)
Application.ScreenUpdating = False
Derlig = Ws1.Range("B65536").End(xlUp).Row
For Each C In Liste
   For Ligne = Derlig To 5 Step -1
      Del = "MC "
      If Ws1.Cells(Ligne, 2).Value = Del & UCase(C) Then
         Ws1.Cells(ligne, 2).EntireRow.Interior.ColorIndex = 23
         ' à remplacer par ceci pour supprimer la ligne ! voir si rien plus à droite !!!
          'Ws1.Cells(Ligne, 2).EntireRow.Delete
      End If
   Next Ligne
Next
Application.ScreenUpdating = True
End Sub

Ce code marche très bien, merci beaucoup pour cette rapidité.

Mais si dans ma colonne "B" ce n'est plus "MC PM" mais "PM 47" par exemple, il faudra que je modifie le code de la macro.

Est-ce qu'il 'y aurais pas un moyen d'isoler le terme fixe (ici MC) qui sera le même pour tout un fichier et qui se trouvera soit à droite soit à gauche du caractère à supprimer?

Par exemple de mettre dans une cellule à part le caractère fixe, (ici MC) et de dire : supprime les lignes dont les cellules de la colonne "B" contienne les caractères de la liste, sans tenir compte des caractères identique à la cellule remplie (MC).

re,

petit changement dans le code:

mais: il faut nommer une cellule "dele" où tu mets "MC", le code ajoutera un espace et puis ce qui est en colonne "suppression"

P.

275test-trie.xlsm (58.78 Ko)

Merci beaucoup cela fonctionne parfaitement, cela faisait quelque jours que je chercher sans résultats.

Sujet résolu

@+

Rechercher des sujets similaires à "supprimer lignes fonction liste feuille"