Supprimer une ligne (ou la cellule) si la cellule contient un mot

Cette fonction a sans doute été décrite plusieurs fois, mais je n'ai pas retrouvé le script.

Dans ma macro, il y a déjà d'autres fonctions qui traitent la colonne A d'une feuille donnée.

On part donc du principe que cette colonne est toujours sélectionnée et que je veux juste supprimer les lignes (ou les cellules) qui contiennent le mot "Expire".

Les cellules concernées contiennent en fait le libellé complet suivant "Expire dans x jours" avec x qui varie. Or cette donnée ne m'intéresse pas, je veux la supprimer.

Voici la ligne que j'ai ajouté mais qui ne fonctionne pas:

        ' si la ligne contient le mot "Expire" > suppression de la ligne
        If InStr(1, .Cells(LigV, "A").Text, "Expire", 1) <> 0 Then .Rows(LigV + 1).Delete
        End If

Il y a sans doute des erreurs, mais je ne sais pas lesquelles.
Merci d'avance pour votre aide

Bonjour

A tester

' si la ligne contient le mot "Expire" > suppression de la ligne
If InStr(1, .Cells(LigV, "A").Text, "Expire", vbTextCompare) <> 0 Then
    .Rows(LigV).Delete
End If

Merci mais ça ne fonctionne pas non plus

Ce qui serait bien c'est de joindre le fichier anonymisé avec 4 ou 5 lignes

Crdlt

si on fait cela dans un boucle, on doit le faire dans une séquence descendant donc quelque chose comme for ligV=999 to 1 step -1

autrement cela ne fonctionne pas (100%)

C'est justement dans une boucle que voici

Sub lignesSP()
Dim DerLigV As Long, LigV As Long
With Sheets("Feuil1")
    DerLigV = .[A100000].End(xlUp).Row
    For LigV = DerLigV To 2 Step -1
        ' si la ligne contient un prix et que la ligne suivante ne contient pas livraison
        If InStr(1, .Cells(LigV, "A").Text, "€", 1) <> 0 And InStr(1, .Cells(LigV + 1, "A").Text, "livraison", 1) = 0 Then
            'on insère une ligne
            .Rows(LigV + 1).Insert Shift:=xlDown
        'End If
        ' si la ligne contient le mot "Expire" > suppression de la ligne
        If InStr(1, .Cells(LigV, "A").Text, "Expire", vbTextCompare) <> 0 Then .Rows(LigV).Delete
        End If
    Next
End With
End Sub

Bonjour

a tester

Sub lignesSP()
    Dim DerLigV As Long, LigV As Long
    With Sheets("Feuil1")
        DerLigV = .[A100000].End(xlUp).Row
        For LigV = DerLigV To 2 Step -1
            ' Si la ligne contient un prix et que la ligne suivante ne contient pas "livraison"
            If InStr(1, .Cells(LigV, "A").Text, "€", 1) <> 0 And InStr(1, .Cells(LigV + 1, "A").Text, "livraison", 1) = 0 Then
                ' Insérer une ligne
                .Rows(LigV + 1).Insert Shift:=xlDown
            End If

            ' Si la ligne contient le mot "Expire", suppression de la ligne
            If InStr(1, .Cells(LigV, "A").Text, "Expire", vbTextCompare) <> 0 Then
                .Rows(LigV).Delete
            End If
        Next LigV
    End With
End Sub
Rechercher des sujets similaires à "supprimer ligne contient mot"