Suppression lignes

Bonjour a vous

Je recherche un code vba qui pourrait me supprimer les lignes qui contiennent en colonne D les mots: "VID-Vide"; "TOI-Toiture" et aussi si la cellule est vide (sans valeur). Actuellement j'ai 3 macros pour faire cela mais j'aimerai le faire en une seule fois.

Merci pour votre aide

Cdt

chtimili

Bonjour chtimili,

dhany

Bonjour chtimili, dhany, le forum,

Un essai (mais il est vrai que sans fichier.....)

Sub suppression()

     Dim DernLigne As Long

  With Sheets("ta feuille") 'nom de ta feuille - à adapter
       DernLigne = Range("A" & Rows.Count).End(xlUp).Row

     For i = 1 To DernLigne   'de la ligne 1 à la dernière ligne remplie - à adapter
         If .Range("D" & i) = "VID-Vide" Or .Range("D" & i) = "TOI-Toiture" Or .Range("D" & i) = "" Then
     Rows(i).EntireRow.Delete
         End If
     Next i

  End With

End Sub

Cordialement,

Bonjour xorsankukai,

Ton code VBA est pas mal, mais tu as oublié qu'en cas de suppression, le traitement doit être fait de bas en haut, donc :

For i = DernLigne To 2 Step -1 (j'ai mis 2 car il y a probablement une ligne d'en-têtes).

Ce serait mieux aussi de déclarer la variable i ➯ Dim DernLigne As Long, i As Long

Cordialement,

dhany

Re,

Merci dhany pour ta correction ,

J'en prends note

Cordialement,

Re,

suite au conseil de dhany,

Nouvelle version:

Sub suppression()

     Dim DernLigne As Long, i As Long

  With Sheets("ta feuille") 'nom de ta feuille - à adapter
       DernLigne = Range("A" & Rows.Count).End(xlUp).Row

     For i = DernLigne To 2 Step -1
         If .Range("D" & i) = "VID-Vide" Or .Range("D" & i) = "TOI-Toiture" Or .Range("D" & i) = "" Then
     Rows(i).EntireRow.Delete
         End If
     Next i

  End With

End Sub
9classeur1.xlsm (14.04 Ko)

Merci les gars

Pardons pour le fichier mais vous avez bien capté ce que je voulais , j'ai modifier comme la dit xorsankukai

super dons

merci a vous

Rechercher des sujets similaires à "suppression lignes"