ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   stop calling sub Intentionally without error. (https://www.excelbanter.com/excel-programming/438335-stop-calling-sub-intentionally-without-error.html)

BRC[_2_]

stop calling sub Intentionally without error.
 
Hi all,
I am trying to find a way to stop all sub's from running if certain
conditions are encountered. sin the example below, if row count is
less than 50 I would like to stop sub_1 from running. All of the
posts i find on this subject are related to errors. this isn't really
an error just a condition. Thanks for any advice. BRC

sub _1()
call sub_2
do some stuff
end sub

sub_2()
if range ("somerange").rows.count <50 then
msgbox("Less than 50 rows")
exit sub
else
end sub


Chip Pearson

stop calling sub Intentionally without error.
 
You should write your Sub_2 as a Function procedure that returns True
if execution is to continue or False if execution should cease. E.g.,


Function Proc2()
If Range("SomeRange").Rows.Count < 50 Then
Proc2 = False
Else
Proc2 = True
End If
End Function

Then, in Sub_1,

Sub Sub_1()
Dim Continue As Boolean
Continue = Proc2()
If Continue = False Then
Exit Sub
End If
' more code
End Sub

Cordially,
Chip Pearson
Microsoft MVP 1998 - 2010
Pearson Software Consulting, LLC
www.cpearson.com
[email on web site]





On Tue, 12 Jan 2010 10:43:24 -0800 (PST), BRC
wrote:

Hi all,
I am trying to find a way to stop all sub's from running if certain
conditions are encountered. sin the example below, if row count is
less than 50 I would like to stop sub_1 from running. All of the
posts i find on this subject are related to errors. this isn't really
an error just a condition. Thanks for any advice. BRC

sub _1()
call sub_2
do some stuff
end sub

sub_2()
if range ("somerange").rows.count <50 then
msgbox("Less than 50 rows")
exit sub
else
end sub


Rick Rothstein

stop calling sub Intentionally without error.
 
Instead of performing the "less than 50" test in sub_2, why not do it in
sub_1?

Sub sub_1()
If Range("somerange").Rows.Count < 50 Then
MsgBox "Less than 50 rows!"
Exit Sub
End If
Call sub_2
' do some stuff
End Sub

Sub sub_2()
' do some stuff
End Sub

--
Rick (MVP - Excel)


"BRC" wrote in message
...
Hi all,
I am trying to find a way to stop all sub's from running if certain
conditions are encountered. sin the example below, if row count is
less than 50 I would like to stop sub_1 from running. All of the
posts i find on this subject are related to errors. this isn't really
an error just a condition. Thanks for any advice. BRC

sub _1()
call sub_2
do some stuff
end sub

sub_2()
if range ("somerange").rows.count <50 then
msgbox("Less than 50 rows")
exit sub
else
end sub



BRC[_2_]

stop calling sub Intentionally without error.
 
On Jan 12, 10:53*am, Chip Pearson wrote:
You should write your Sub_2 as a Function procedure that returns True
if execution is to continue or False if execution should cease. E.g.,

Function Proc2()
* * * * If Range("SomeRange").Rows.Count < 50 Then
* * * * * * * * Proc2 = False
* * * * Else
* * * * * * * * Proc2 = True
* * * * End If
End Function

Then, in Sub_1,

Sub Sub_1()
* * * * Dim Continue As Boolean
* * * * Continue = Proc2()
* * * * If Continue = False Then
* * * * * * * * Exit Sub
* * * * End If
* * * * ' more code
End Sub

Cordially,
Chip Pearson
Microsoft MVP 1998 - 2010
Pearson Software Consulting, LLCwww.cpearson.com
[email on web site]

On Tue, 12 Jan 2010 10:43:24 -0800 (PST), BRC



wrote:
Hi all,
I am trying to find a way to stop all sub's from running if certain
conditions are encountered. sin the example below, if row count is
less than 50 I would like to stop sub_1 from running. *All of the
posts i find on this subject are related to errors. this isn't really
an error just a condition. *Thanks for any advice. BRC


sub _1()
call sub_2
do some stuff
end sub


sub_2()
if range ("somerange").rows.count <50 then
msgbox("Less than 50 rows")
exit sub
else
end sub- Hide quoted text -


- Show quoted text -


thank you for the quick responses. I thought i read somewhere that
using smaller sections of code where more efficient and make debug
easier. also I thouht that having several sub routines to do
differnt things might be a better approach then writing one long
macro. Given all that, Chip I am not sure how Sub Sub_1() in your
example knows that the Function Proc2() ended in true (or false).
Thanks again for the help


BRC[_2_]

stop calling sub Intentionally without error.
 
On Jan 12, 11:30*am, BRC wrote:
On Jan 12, 10:53*am, Chip Pearson wrote:





You should write your Sub_2 as a Function procedure that returns True
if execution is to continue or False if execution should cease. E.g.,


Function Proc2()
* * * * If Range("SomeRange").Rows.Count < 50 Then
* * * * * * * * Proc2 = False
* * * * Else
* * * * * * * * Proc2 = True
* * * * End If
End Function


Then, in Sub_1,


Sub Sub_1()
* * * * Dim Continue As Boolean
* * * * Continue = Proc2()
* * * * If Continue = False Then
* * * * * * * * Exit Sub
* * * * End If
* * * * ' more code
End Sub


Cordially,
Chip Pearson
Microsoft MVP 1998 - 2010
Pearson Software Consulting, LLCwww.cpearson.com
[email on web site]


On Tue, 12 Jan 2010 10:43:24 -0800 (PST), BRC


wrote:
Hi all,
I am trying to find a way to stop all sub's from running if certain
conditions are encountered. sin the example below, if row count is
less than 50 I would like to stop sub_1 from running. *All of the
posts i find on this subject are related to errors. this isn't really
an error just a condition. *Thanks for any advice. BRC


sub _1()
call sub_2
do some stuff
end sub


sub_2()
if range ("somerange").rows.count <50 then
msgbox("Less than 50 rows")
exit sub
else
end sub- Hide quoted text -


- Show quoted text -


thank you for the quick responses. *I thought i read somewhere that
using smaller sections of code where more efficient and make debug
easier. *also I thouht that having several sub routines *to do
differnt things might be a better approach then writing one long
macro. *Given all that, *Chip I am not sure how Sub Sub_1() in your
example knows that the Function Proc2() ended in true (or false).
Thanks again for the help- Hide quoted text -

- Show quoted text -


Never mind, I see how that happens. Thanks again.


All times are GMT +1. The time now is 06:02 PM.

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