How do I automatically delete a row, if one cell equals zero?

S

Susan

Option Explicit

Sub Koz()

Dim myLastRow As Long
Dim r As Long
Dim c As Range

myLastRow = ActiveSheet.Cells(10000, 1).End(xlUp).Row

For r = myLastRow To 1 Step -1
Set c = ActiveSheet.Range("a" & r)
If c.Value = 0 Then
c.EntireRow.Delete
End If
Next r

End Sub
==================
this is a macro - you can't do what you want with formulas without
having a helper column and either auto filtering or manually deleting
rows yourself. in this macro, if column A is zero, the entire row
will be deleted.
next time don't put the whole question in the header..... it's
considered bad manners. if this macro doesn't do what you want, post
back with details & i can amend it.
hope this helps
:)
susan
 
M

Marie

Susan,
Sorry for the bad manners, but I'm new to this group and was unaware I was
being rude. Thanks so much for your very quick reply. However, my situation
is this. I have a 800 page spreadsheet, I need to delete certain rows. I
need to delete rows where in Columns J through M equals zero. Also, can you
please tell me where to write this formula/macro. I am unfamiliar with this
aspect of Excel. Again, I am forever grateful for you help.
 
S

Susan

marie - no problem about the headers! :)

as to the macro, peo's answered you about where to put it.
as to amending it so that the condition is that columns J thru M equal
zero....... well, you've got me a bit stumped there. not quite sure
how to do that, but i'll go away & play with it a bit & maybe i can
figure it out.
i've changed the header & maybe somebody else can help you out with
that part in case i fail!
best wishes
susan
 
S

Susan

well, i cheated, but it works. i'm sure there's another way to do it,
but like i said, i don't know how.
this simply looks at the four columns & if they all have zeros in them
(the only way it would add up to zero), then it deletes the row. i'd
sure be interested in seeing how to do it by adding the four columns
up, if anybody else knows how to do that.
=======================
Option Explicit

Sub Marie()

Dim myLastRow As Long
Dim r As Long
Dim c As Range

myLastRow = ActiveSheet.Cells(10000, 10).End(xlUp).Row

For r = myLastRow To 1 Step -1
Set c = ActiveSheet.Range("j" & r)
If c.Value = 0 And _
c.Offset(0, 1).Value = 0 And _
c.Offset(0, 2).Value = 0 And _
c.Offset(0, 3).Value = 0 Then
c.EntireRow.Delete
End If
Next r

End Sub
=========================
of course, this doesn't account for blanks, so......... don't know if
that will be a problem.
hope it helps somewhat, tho!
:)
susan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top