Aide VBA supression ligne selon liste de mots

Bonjour a tous,

Je me présente Logan apprenti dans une petite entreprise, j'ai découvert le VBA en autodidacte il y' a de cela quelques mois d'ou mon approche sans doute brouillon et simpliste c'est pourquoi je nécessite vos connaissances en VBA afin de m'aider a résoudre le problème suivant:

j'ai besoin de créer un bouton permettant d'effacer certaines lignes de ma feuille 1 selon si ces dernières contiennent un mot présent dans une liste de mots indésirables situés en feuille 2 j'ai comme contrainte de ne pas citer ces mots dans mon code VBA car l'utilisation de ce classeur devra être simple d'utilisation pour l'utilisateur final qui pourra alimenter la liste de la deuxième feuille librement

Apres avoir épluché des centaines de pages internet sans réellement trouver d'aide précise permettant de résoudre mon problème et malgré mes tentatives de faire de plusieurs codes un seul bon je m'en remet a vous pour m'aider a trouver une solution ou une directive a suivre car je vous avouerais ne plus savoir ou aller

Je joint a ce post une version "annonyme" de ma vraie feuille de calcul car le secret professionnel me l'oblige

Merci beaucoup par avance

10version-annonyme.xlsm (126.54 Ko)

Bonjour,

Un essai ...

Private Sub CommandButton1_Click()
Dim Ws As Worksheet     ' déclaration des variables
Dim X As Integer
Dim Y As Integer
Dim Dlig1 As Integer
Dim Dlig2 As Integer

    Set Ws = Worksheets("Panneau de controle")                  ' mémorise le nom de la feuille
    Dlig1 = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row    ' trouve la dernière cellule non vide
    Dlig2 = Ws.Cells(Rows.Count, "T").End(xlUp).Row             ' trouve la dernière cellule non vide

    For X = 2 To Dlig2          ' boucle de la ligne 2 à la fin sur la feuille "Panneau de controle"
        For Y = 3 To Dlig1      ' boucle de la ligne 3 à la fin sur la feuille "Import"
                                ' si la condition est vrai, supprimer la ligne
            If Cells(Y, "C").Value = Ws.Cells(X, "T").Value Then Range("A" & Y & ":G" & Y).Delete Shift:=xlUp
        Next Y
    Next X
    Set Ws = Nothing    ' libère la variable
End Sub

ric

Bonjour Ric

Merci beaucoup c'est super c'est cela mais il y a juste un petit bémol ^^

En fait je souhaiterais que cela supprime les lignes qui contiennent un mot de la feuille 2 par exemple:

en indésirable le mot truck permettrais de supprimer la ligne renault truck mais pas renault tout court

Mais est-il possible de dire a excel de comparer si une chaîne de caractère est présente ailleurs ?

merci encore!

Bonjour,

J'avoue que mon premier code était un peu bâclé ... m'enfin ...

Un autre essai ...

Private Sub CommandButton1_Click()
Dim Ws As Worksheet     ' déclaration des variables
Dim X As Integer
Dim Y As Integer

    Application.ScreenUpdating = False
    Set Ws = Worksheets("Panneau de controle")                  ' mémorise le nom de la feuille

    For X = 2 To Ws.Cells(Rows.Count, "T").End(xlUp).Row          ' boucle de la ligne 2 à la fin sur la feuille "Panneau de controle"
        For Y = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row To 3 Step -1       ' boucle de la ligne 3 à la fin sur la feuille "Import"
    ' si la condition est vrai, supprimer la ligne
            If UCase(Cells(Y, "C").Value) Like "*" & UCase(Ws.Cells(X, "T").Value) & "*" Then
                Range("A" & Y & ":G" & Y).Delete Shift:=xlUp
            End If
        Next Y
    Next X
    Set Ws = Nothing    ' libère la variable
End Sub

ric

YESSS impecable mille mercis Ric !!!

Rechercher des sujets similaires à "aide vba supression ligne liste mots"