View Single Post
  #22   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default vba code doesn't work

First, it should go in a general module. If it ran without any action on
your part, then you must have placed it inside an event procedure or called
it from an event procedure.

the only macros that run without be told to run are macros fired by events.

If you want it to work in a specific column, then you might alter it to
refer to that column

Sub deletezero()
Dim i as Long
For i = Worksheets("sheet1").Range("B1") _
.End(xlDown).Row To 1 Step -1
If Worksheets("Sheet1").Cells(i, 1) = 0 Then _
Worksheets("Sheet1").Rows(i).Delete
Next
End Sub

As an example.

If you want to fire it when the workbook is opened, then call it from the
workbook_Open event found in the Thisworkbook.module.

--
Regards,
Tom Ogilvy



"lschuh" wrote in message
...
I put that in and my worksheet just started blinking and I had to break

out
of the application. It ran before when I removed the option explicit and
placed it in the personal.xls I put it in the worksheet I wanted it

to
run in and it spun out.

"Tom Ogilvy" wrote:

Sub deletezero()

Dim i as Long
For i = ActiveCell.End(xlDown).Row To 1 Step -1
If Cells(i, 1) = 0 Then Rows(i).Delete
Next
End Sub


--
Regards,
Tom Ogilvy

"lschuh" wrote in message
...
I put your code into my macro and placed it in the personal.xls
It wouldn't run without declaring the variable i
I deleted the option explicit and it runs.
My question do you know how to declare the variable?
Should I delete the macro from the personal.xls and put it into the
worksheet I am opening.
Will the macro run with other open worksheets. It seems to be running

on
its own.
What is the best way to go?


"Don Guillett" wrote:

you might like this better
Sub deletezero()
For i = ActiveCell.End(xlDown).Row To 1 Step -1
If Cells(i, 1) = 0 Then Rows(i).Delete
Next
End Sub

--
Don Guillett
SalesAid Software

"lschuh" wrote in message
...
I found an example of vba code in a book "Using Excel 2003". It

doesn't
work
and locks the entire application up. The code is:
Sub removenull()
Application.ScreenUpdating = False
Do Until ActiveCell.Value = " "
If ActiveCell.Value = 0 Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub


It is supposed to remove 0 from rows and delete rows.

What is wrong with it?