Supprimer ligne en fonction de plusieurs mots

Bonjour a tous ,

J’utilise ce code pour supprimer des lignes d'un tableau, cela fonctionne tres bien , si la colonne N contient 1865 , la ligne est supprimée.. C'est le but et ca marche

je voudrais aussi que si la ligne contient 1866 elle soit aussi supprimée , je ne connais pas la syntaxe a utiliser.

Merci de votre aide

Dim i As Integer

With ThisWorkbook.Sheets("Expedition")

'Précisez le nom de votre feuille

For i = .Range("N" & .Rows.Count).End(xlUp).Row To 2 Step -1

'je travaille sur la colonne c

'Rows.count permet de retourner le nombre de ligne de la plage range

If .Range("N" & i).Value = "1865" Then

.Rows(i).Delete

End If

Next i

End With

End Sub

Bonsoir,

Dim i As Integer
With ThisWorkbook.Sheets("Expedition")
'Précisez le nom de votre feuille
For i = .Range("N" & .Rows.Count).End(xlUp).Row To 2 Step -1
'je travaille sur la colonne c
'Rows.count permet de retourner le nombre de ligne de la plage range
If .Range("N" & i).Value = "1865" Or .Range("N" & i).Value = "1866" Then
.Rows(i).Delete
End If
Next i
End With
End Sub

@+

Simple , rapide ,efficace

Le top du top serait de pouvoir supprimer les lignes d'apres une liste de valeur dans une autre feuille, mais là j'en demande un peu bcp

En tout cas , un grand merci

Re,

C'est une histoire de quelques instructions en plus, ce n'est donc pas une affaire mais avec un fichier ce serait encore plus simple

Quoiqu'il en soit, avant cet éventuel fichier, voici un code à adapter :

Dim i As Integer
With ThisWorkbook.Sheets("Expedition")
'Précisez le nom de votre feuille
For i = .Range("N" & .Rows.Count).End(xlUp).Row To 2 Step -1
'je travaille sur la colonne c
'Rows.count permet de retourner le nombre de ligne de la plage range
If .Range("N" & i).Value = Sheets("Feuil2").Range("A1").value Or .Range("N" & i).Value = Sheets("Feuil2").Range("A1").value Then 'Adapter le nom de feuille et n° de cellule
.Rows(i).Delete
End If
Next i
End With
End Sub

@+

Une proposition plus dynamique :

Dim i As Integer
Dim j As Integer
With ThisWorkbook.Sheets("Feuil1")
'Précisez le nom de votre feuille
For i = .Range("N" & .Rows.Count).End(xlUp).Row To 2 Step -1
'je travaille sur la colonne c
'Rows.count permet de retourner le nombre de ligne de la plage range
    For j = Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1 'Adapter le nom de feuille et la colonne où se situe les valeurs.
        If .Range("N" & i).Value = Sheets("Feuil2").Cells(j, 1).Value Then
            .Rows(i).Delete
        End If
    Next j
Next i
End With
End Sub

Bonsoir à tous,

Un exemple à adapter ci-dessous :

Option Explicit
Sub test()
Dim rngCrit As Range, r As Range, vCrit, dico As Object
    Set dico = CreateObject("scripting.dictionary")
    dico.CompareMode = 1
    Application.ScreenUpdating = False
    With Sheets(2) 'la feuille où se situe ta liste
        Set rngCrit = .Range("a2:a" & .Range("a" & .Rows.Count).End(xlUp).Row) 'a adapter
        For Each r In rngCrit
            dico(r.Value) = Empty
        Next
    End With
    vCrit = dico.keys
    With Sheets("Expedition").Cells(1).CurrentRegion
        .Parent.AutoFilterMode = False
        .AutoFilter 14, vCrit, 7
        .Offset(1).EntireRow.Delete
        .AutoFilter
    End With
    Set dico = Nothing
    Application.ScreenUpdating = True
End Sub

klin89

Un grand merci a tous !! Ca fonctionne top

Est il possible que cela fonctionne a l'envers... j'explique

Pour le moment

Dans ma liste colonne A, j'ai bien ma liste de mots a effacer sur l'autre feuille... Ca fonctionne.

Est il possible de faire l'inverse, je ne garde dans ma liste que les lignes différentes a ma liste de mots colonne A (cela accélérerai le traitement)

En esperant être clair , merci

Rechercher des sujets similaires à "supprimer ligne fonction mots"