2 macro help

P

puiuluipui

Hi, i have in a macro this part of the code that delete empty rows:

Dim lRow As Long
With Application
..ScreenUpdating = False
..Calculation = xlCalculationManual
..EnableEvents = False
For lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious).Row To 1 Step -1
If WorksheetFunction.CountA(Rows(lRow)) = 0 Then Rows(lRow).Delete
Next lRow
..ScreenUpdating = True
..Calculation = xlCalculationAutomatic
..EnableEvents = True

and then this one:

range("A2:A300").Select
Selection.ClearContents
range("A2").Select

range("A2").Select
ActiveCell.FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
Selection.AutoFill Destination:=range("A2:A300"), Type:=xlFillDefault
range("A2:A300").Select
range("A2").Select
The problem is that the second part is blocking the first one. i neet to
delete empty rows and then to add formula.
What am i doing wrong?
Thanks!
 
L

Luke M

Delete the line near top that says:
..EnableEvents = True

At end of your macro, add the line:
Application.EnableEvents = True
 
J

Joel

when deleting rows use a Do Loop, not a for loop. The deleting of Rows will
cause a problem with the For loop.

Dim lRow As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False

set c = lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious)
if not c is nothing then
LastRow = c

RowCount = LastRow
Do while RowCount >= 1


If WorksheetFunction.CountA(Rows(Rowcount)) = 0 Then
Rows(RowCount).Delete
end if
RowCount = RowCount - 1
Loop

.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True

end with


range("A2:A300").ClearContents
range("A2").FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
range("A2").AutoFill _
Destination:=range("A2:A300"), _
Type:=xlFillDefault
 
P

puiuluipui

Hi Luke, is not working. This is how you said?
The space in the middle is the place from were i removed ".EnableEvents =
True" :

Dim lRow As Long
With Application
..ScreenUpdating = False
..Calculation = xlCalculationManual
..EnableEvents = False
For lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious).Row To 1 Step -1
If WorksheetFunction.CountA(Rows(lRow)) = 0 Then Rows(lRow).Delete
Next lRow
..ScreenUpdating = True
..Calculation = xlCalculationAutomatic


range("A2:A300").Select
Selection.ClearContents
range("A2").Select
range("A2").Select
ActiveCell.FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
Selection.AutoFill Destination:=range("A2:A300"), Type:=xlFillDefault
range("A2:A300").Select
range("A2").Select
Application.EnableEvents = True

Thanks!

Luke M said:
Delete the line near top that says:
.EnableEvents = True

At end of your macro, add the line:
Application.EnableEvents = True
--
Best Regards,

Luke M
*Remember to click "yes" if this post helped you!*


puiuluipui said:
Hi, i have in a macro this part of the code that delete empty rows:

Dim lRow As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
For lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious).Row To 1 Step -1
If WorksheetFunction.CountA(Rows(lRow)) = 0 Then Rows(lRow).Delete
Next lRow
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True

and then this one:

range("A2:A300").Select
Selection.ClearContents
range("A2").Select

range("A2").Select
ActiveCell.FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
Selection.AutoFill Destination:=range("A2:A300"), Type:=xlFillDefault
range("A2:A300").Select
range("A2").Select
The problem is that the second part is blocking the first one. i neet to
delete empty rows and then to add formula.
What am i doing wrong?
Thanks!
 
P

puiuluipui

Hi Joel, i receive this error after i paste your code:
Compile error:
End With without with.

What is wrong?
Thanks!

Joel said:
when deleting rows use a Do Loop, not a for loop. The deleting of Rows will
cause a problem with the For loop.

Dim lRow As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False

set c = lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious)
if not c is nothing then
LastRow = c

RowCount = LastRow
Do while RowCount >= 1


If WorksheetFunction.CountA(Rows(Rowcount)) = 0 Then
Rows(RowCount).Delete
end if
RowCount = RowCount - 1
Loop

.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True

end with


range("A2:A300").ClearContents
range("A2").FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
range("A2").AutoFill _
Destination:=range("A2:A300"), _
Type:=xlFillDefault


puiuluipui said:
Hi, i have in a macro this part of the code that delete empty rows:

Dim lRow As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
For lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious).Row To 1 Step -1
If WorksheetFunction.CountA(Rows(lRow)) = 0 Then Rows(lRow).Delete
Next lRow
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True

and then this one:

range("A2:A300").Select
Selection.ClearContents
range("A2").Select

range("A2").Select
ActiveCell.FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
Selection.AutoFill Destination:=range("A2:A300"), Type:=xlFillDefault
range("A2:A300").Select
range("A2").Select
The problem is that the second part is blocking the first one. i neet to
delete empty rows and then to add formula.
What am i doing wrong?
Thanks!
 
R

Rick Rothstein

The deleting of Rows will cause a problem with the For loop.

Not if you use a For loop that loops from the end of the columns of data
upward to the beginning of the data (using a Step -1 statement to effect the
backward iteration). For example...

For X = LastRow To StartRow Step -1

--
Rick (MVP - Excel)


Joel said:
when deleting rows use a Do Loop, not a for loop. The deleting of Rows
will
cause a problem with the For loop.

Dim lRow As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False

set c = lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious)
if not c is nothing then
LastRow = c

RowCount = LastRow
Do while RowCount >= 1


If WorksheetFunction.CountA(Rows(Rowcount)) = 0 Then
Rows(RowCount).Delete
end if
RowCount = RowCount - 1
Loop

.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True

end with


range("A2:A300").ClearContents
range("A2").FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
range("A2").AutoFill _
Destination:=range("A2:A300"), _
Type:=xlFillDefault


puiuluipui said:
Hi, i have in a macro this part of the code that delete empty rows:

Dim lRow As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
For lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious).Row To 1 Step -1
If WorksheetFunction.CountA(Rows(lRow)) = 0 Then Rows(lRow).Delete
Next lRow
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True

and then this one:

range("A2:A300").Select
Selection.ClearContents
range("A2").Select

range("A2").Select
ActiveCell.FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
Selection.AutoFill Destination:=range("A2:A300"), Type:=xlFillDefault
range("A2:A300").Select
range("A2").Select
The problem is that the second part is blocking the first one. i neet to
delete empty rows and then to add formula.
What am i doing wrong?
Thanks!
 
P

puiuluipui

Hi Rick, i really don't know so much vb. So, how can i implement your code?
Thanks!

Rick Rothstein said:
The deleting of Rows will cause a problem with the For loop.

Not if you use a For loop that loops from the end of the columns of data
upward to the beginning of the data (using a Step -1 statement to effect the
backward iteration). For example...

For X = LastRow To StartRow Step -1

--
Rick (MVP - Excel)


Joel said:
when deleting rows use a Do Loop, not a for loop. The deleting of Rows
will
cause a problem with the For loop.

Dim lRow As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False

set c = lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious)
if not c is nothing then
LastRow = c

RowCount = LastRow
Do while RowCount >= 1


If WorksheetFunction.CountA(Rows(Rowcount)) = 0 Then
Rows(RowCount).Delete
end if
RowCount = RowCount - 1
Loop

.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True

end with


range("A2:A300").ClearContents
range("A2").FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
range("A2").AutoFill _
Destination:=range("A2:A300"), _
Type:=xlFillDefault


puiuluipui said:
Hi, i have in a macro this part of the code that delete empty rows:

Dim lRow As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
For lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious).Row To 1 Step -1
If WorksheetFunction.CountA(Rows(lRow)) = 0 Then Rows(lRow).Delete
Next lRow
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True

and then this one:

range("A2:A300").Select
Selection.ClearContents
range("A2").Select

range("A2").Select
ActiveCell.FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
Selection.AutoFill Destination:=range("A2:A300"), Type:=xlFillDefault
range("A2:A300").Select
range("A2").Select
The problem is that the second part is blocking the first one. i neet to
delete empty rows and then to add formula.
What am i doing wrong?
Thanks!
 
J

Joel

I just left out one end if

Sub Macro1()
'
Dim lRow As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False

Set c = lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious)
If Not c Is Nothing Then
LastRow = c

RowCount = LastRow
Do While RowCount >= 1


If WorksheetFunction.CountA(Rows(RowCount)) = 0 Then
Rows(RowCount).Delete
End If
RowCount = RowCount - 1
Loop

.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End If
End With


Range("A2:A300").ClearContents
Range("A2").FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
Range("A2").AutoFill _
Destination:=Range("A2:A300"), _
Type:=xlFillDefault


End Sub


puiuluipui said:
Hi Joel, i receive this error after i paste your code:
Compile error:
End With without with.

What is wrong?
Thanks!

Joel said:
when deleting rows use a Do Loop, not a for loop. The deleting of Rows will
cause a problem with the For loop.

Dim lRow As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False

set c = lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious)
if not c is nothing then
LastRow = c

RowCount = LastRow
Do while RowCount >= 1


If WorksheetFunction.CountA(Rows(Rowcount)) = 0 Then
Rows(RowCount).Delete
end if
RowCount = RowCount - 1
Loop

.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True

end with


range("A2:A300").ClearContents
range("A2").FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
range("A2").AutoFill _
Destination:=range("A2:A300"), _
Type:=xlFillDefault


puiuluipui said:
Hi, i have in a macro this part of the code that delete empty rows:

Dim lRow As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
For lRow = Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious).Row To 1 Step -1
If WorksheetFunction.CountA(Rows(lRow)) = 0 Then Rows(lRow).Delete
Next lRow
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True

and then this one:

range("A2:A300").Select
Selection.ClearContents
range("A2").Select

range("A2").Select
ActiveCell.FormulaR1C1 = "=IF(ISBLANK(RC[1]),"""",TODAY())"
Selection.AutoFill Destination:=range("A2:A300"), Type:=xlFillDefault
range("A2:A300").Select
range("A2").Select
The problem is that the second part is blocking the first one. i neet to
delete empty rows and then to add formula.
What am i doing wrong?
Thanks!
 

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