Effacer Ligne si cellule = 0 uniquement

Bonjour,

J'aimerai supprimé ligne entière des lors que cellule G=0 exclusivement

Mon code :

Sub EffacerG0()

Dim g As Long

For g = Range("g65536").End(xlUp).Row To 1 Step -1

If Cells(g, 9) = "0" Then Rows(g).Delete

Next g

End Sub

Si j'enlève les "" de 0 alors il suprime, mais également les cellule vide c'est la raison de mon Post

Merci !!!

Bonjour Barachoie, bonjour le forum,

Peut-être comme ça :

Sub Macro1()
Dim CEL As Range
Dim PL As Range

Set PL = Range("A1")
For Each CEL In Range("G1:G " & Cells(Application.Rows.Count, 7).End(xlUp).Row).SpecialCells(xlCellTypeConstants)
    If CEL.Value = 0 Then
        Set PL = IIf(PL.Address = "$A$1", Rows(CEL.Row), Application.Union(PL, Rows(CEL.Row)))
    End If
Next CEL
PL.Delete
End Sub

Bonjour à tous,

une autre version, à tester

Sub supp()      'Supprime les lignes contenant un zéro feuille 1 colonne G
     Sheets("Feuil1").Select
    For i = [G65000].End(xlUp).Row To 1 Step -1
        If Cells(i, 1) = 0 Then Cells(i, 1).EntireRow.Delete
    Next i
  End Sub

Amicalement

Pierrot

Merci Thau theme et Pierre

les deux versions ne fonctionnent pas.

Pour Thau = bloqué a la ligne for each

Pour Pierre il efface que les cases vides et laisse les zeros intacts soit l'inverse de ma requête

bien cordialement

Daniel

Bonsoir le fil, bonsoir le forum,

Désolé, il y avait juste un espace en trop (Range("G1:G " etc.)...

Le code modifié :

Sub Macro1()
Dim CEL As Range
Dim PL As Range

Set PL = Range("A1")
For Each CEL In Range("G1:G" & Cells(Application.Rows.Count, 7).End(xlUp).Row).SpecialCells(xlCellTypeConstants)
    If CEL.Value = 0 Then
        Set PL = IIf(PL.Address = "$A$1", Rows(CEL.Row), Application.Union(PL, Rows(CEL.Row)))
    End If
Next CEL
PL.Delete
End Sub

Parfait tu es un As !!!!!!

Merci

Rechercher des sujets similaires à "effacer ligne uniquement"