ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Stop the macro at the end of a certain column (https://www.excelbanter.com/excel-programming/405155-stop-macro-end-certain-column.html)

Carrie_Loos via OfficeKB.com

Stop the macro at the end of a certain column
 
Can anyone tell me how to write the string of code to stop a macro at a
certain point? I have the following macro that runs through a range but
because I need to use the cell.find and activate mode when it loops around it
ignores the range and continues on, I am thinking if I could just stop it at
the bottom of column AU where I have a "999" then it would solve my problems.

Sub FindOnes()


Dim r As Range
Dim Topcell As Variant
Dim Bottomcell As Variant

Set r = ActiveSheet.Range("E3:AU65535")

For Each c In r

Cells.Find(What:="1", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:
= _
False, SearchFormat:=True).Activate
If ActiveCell.Value = 1 Then
Set Topcell = ActiveCell


Cells.Find(What:="2", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:
= _
False, SearchFormat:=True).Activate
If ActiveCell.Value = 2 Then
Set Bottomcell = ActiveCell

If Topcell = 1 Then Set Topcell = Topcell
Range(Topcell, Bottomcell).Select
Selection.FillDown
Bottomcell.Select

End If
End If

???????Stop at the end of column AU???????

Next



End Sub

--
Message posted via http://www.officekb.com


JLGWhiz

Stop the macro at the end of a certain column
 
???????Stop at the end of column AU???????

Put this in where the above line appears:

If c.Address = "AU65535" Then
Exit For
End If

"Carrie_Loos via OfficeKB.com" wrote:

Can anyone tell me how to write the string of code to stop a macro at a
certain point? I have the following macro that runs through a range but
because I need to use the cell.find and activate mode when it loops around it
ignores the range and continues on, I am thinking if I could just stop it at
the bottom of column AU where I have a "999" then it would solve my problems.

Sub FindOnes()


Dim r As Range
Dim Topcell As Variant
Dim Bottomcell As Variant

Set r = ActiveSheet.Range("E3:AU65535")

For Each c In r

Cells.Find(What:="1", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:
= _
False, SearchFormat:=True).Activate
If ActiveCell.Value = 1 Then
Set Topcell = ActiveCell


Cells.Find(What:="2", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:
= _
False, SearchFormat:=True).Activate
If ActiveCell.Value = 2 Then
Set Bottomcell = ActiveCell

If Topcell = 1 Then Set Topcell = Topcell
Range(Topcell, Bottomcell).Select
Selection.FillDown
Bottomcell.Select

End If
End If

???????Stop at the end of column AU???????

Next



End Sub

--
Message posted via http://www.officekb.com



JLGWhiz

Stop the macro at the end of a certain column
 
You can also use the word "Stop".

Stop does the same thing that a breakpoint does when you are editing code.
It temporarily halts the macro. You can restart the macro by clicking the
continue arrow in the VBE.

"Carrie_Loos via OfficeKB.com" wrote:

Can anyone tell me how to write the string of code to stop a macro at a
certain point? I have the following macro that runs through a range but
because I need to use the cell.find and activate mode when it loops around it
ignores the range and continues on, I am thinking if I could just stop it at
the bottom of column AU where I have a "999" then it would solve my problems.

Sub FindOnes()


Dim r As Range
Dim Topcell As Variant
Dim Bottomcell As Variant

Set r = ActiveSheet.Range("E3:AU65535")

For Each c In r

Cells.Find(What:="1", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:
= _
False, SearchFormat:=True).Activate
If ActiveCell.Value = 1 Then
Set Topcell = ActiveCell


Cells.Find(What:="2", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:
= _
False, SearchFormat:=True).Activate
If ActiveCell.Value = 2 Then
Set Bottomcell = ActiveCell

If Topcell = 1 Then Set Topcell = Topcell
Range(Topcell, Bottomcell).Select
Selection.FillDown
Bottomcell.Select

End If
End If

???????Stop at the end of column AU???????

Next



End Sub

--
Message posted via http://www.officekb.com



Carrie_Loos via OfficeKB.com

Stop the macro at the end of a certain column
 
Thanks - still not quite there yet.

What I ended up doing is putting the statement after the "find" portion for a
1 and placing a 1 in cell AU65535. When I step through the macro it does run
correctly and end up on cell AU65535 but it does not recoginze the c.Address
and skips to the End if.

In leiu of c.Address I have also tried ActiveCell and/or range TopCell with
no luck, I even changed the orginal set range to end at AU65534. Is there any
other way to identify the cell so that the macro exits or stops?

JLGWhiz wrote:
???????Stop at the end of column AU???????

Put this in where the above line appears:

If c.Address = "AU65535" Then
Exit For
End If

Can anyone tell me how to write the string of code to stop a macro at a
certain point? I have the following macro that runs through a range but

[quoted text clipped - 40 lines]

End Sub


--
Message posted via http://www.officekb.com



All times are GMT +1. The time now is 03:05 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com