Bonjour,
Ce code fonctionne à condition que la colonne A soit remplie et qu'il n'y ait pas de colonnes vides dans la plage.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Sub RowDelete()
Dim rng As Range, r As Long
Set rng = ThisWorkbook.Worksheets("Feuil1").Range("A1").CurrentRegion
' Suppresion des lignes dont les cellules de la colonne C sont vides
With rng
.Offset(, 2).Resize(, 1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Set rng = ThisWorkbook.Worksheets("Feuil1").Range("A1").CurrentRegion
With rng
For r = .Rows.Count To 2 Step -1
If Trim(LCase(.Cells(r, 4))) <> "aaa" And Trim(LCase(.Cells(r, 4))) <> "bbb" Then
.Cells(r, 4).EntireRow.Delete
End If
Next
End With
End Sub |
Dans l'exemple, on supprime les espaces avant et après de la cellule D & r et on ne respecte pas la casse.
D'autres tests sont possibles
If .Cells(r, 4) <> "aaa" And .Cells(r, 4) <> "bbb" Then .Rows(r).Delete
ou
If LCase(.Cells(r, 4)) <> "aaa" And LCase(.Cells(r, 4)) <> "bbb" Then .Rows(r).Delete
Partager