Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 168
Default Exit a Procedure from a Sub within a sub

I'm running a procedure that calls other macros. In one of these macros I
have an if then statement that if true I want to exit the entire procedure.
What is the code for this? Exit Sub just exits the current sub I'm running,
not the entire larger one.

Thanks

Adam Bush
  #2   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 1,814
Default Exit a Procedure from a Sub within a sub

How about "End"

" wrote:

I'm running a procedure that calls other macros. In one of these macros I
have an if then statement that if true I want to exit the entire procedure.
What is the code for this? Exit Sub just exits the current sub I'm running,
not the entire larger one.

Thanks

Adam Bush

  #3   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 968
Default Exit a Procedure from a Sub within a sub

Sub MainSub()
Dim blQuit as boolean

blQuit=False
SubSub blQuit

if blQuit then exit sub

....
End Sub
Sub SubSub(blQuit as boolean)

'''
If thereisanerror then
blQuit=true
exit sub
endif
....
End Sub

Charles
__________________________________________________
The Excel Calculation Site
http://www.decisionmodels.com

"
m wrote in message
...
I'm running a procedure that calls other macros. In one of these macros I
have an if then statement that if true I want to exit the entire
procedure.
What is the code for this? Exit Sub just exits the current sub I'm
running,
not the entire larger one.

Thanks

Adam Bush



  #4   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 35,218
Default Exit a Procedure from a Sub within a sub

You could change the called sub to a function and return a boolean value that
you could check after the call.

Sub SubA()
if Functa() = false then
exit sub
end if
End sub
Function FunctA()

functa = true 'be positive!
if somethingbadhappens then
functa = false
exit function 'leave here immediately, too
end if
End Function

Or you could use a module level (or public) variable and just have your called
sub change its status.

Dim OkToContinue as boolean
sub suba()
call subb
if oktocontinue = false then
exit sub
end if
...
End sub
sub subb()
oktocontinue = false
end sub

wrote:

I'm running a procedure that calls other macros. In one of these macros I
have an if then statement that if true I want to exit the entire procedure.
What is the code for this? Exit Sub just exits the current sub I'm running,
not the entire larger one.

Thanks

Adam Bush


--

Dave Peterson
  #5   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 968
Default Exit a Procedure from a Sub within a sub

Usually using End is bad practice as it resets all your VBA code and
variables without going through any exit routines.


Charles
__________________________________________________
The Excel Calculation Site
http://www.decisionmodels.com

"Steve" wrote in message
...
How about "End"

" wrote:

I'm running a procedure that calls other macros. In one of these macros
I
have an if then statement that if true I want to exit the entire
procedure.
What is the code for this? Exit Sub just exits the current sub I'm
running,
not the entire larger one.

Thanks

Adam Bush





  #6   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 2,420
Default Exit a Procedure from a Sub within a sub

Do it as functions with some error testing,

Global Const AppErrorNum As Long = 19999
Global ErrorMsg As String

Sub Main()

Const ProcName as String = "Main"

On Error Goto Main_Error

'some code

If Not MyFirstCall Then Err.Raise AppErrorNum

'some more code

If Not MySecondCall Then Err.Raise AppErrorNum
'etc

Main_Exit:
Exit Sub

Main_Error:
If ErrorMsg = "" Then
ErrorMsg = "Error in " & ProcName & vbNewLine & _
"Error: " & Err.Number & ", " & Err.Description
End If
MsgBox ErrorMsg
Resume Main_Exit
End Sub

Public Sub MyFirstCall() As Boolean

Const ProcName as String = "MyFirstCall "
MyFirstCall = True
On Error Goto MyFirstCall_Error

' the real code

MyFirstCall_Exit:
'tidy-up code
Exit Function

MyFirstCall_Error:
MyFirstCall = False
ErrorMsg = "Error in " & ProcName & vbNewLine & _
"Error: " & Err.Number & ", " & Err.Description
Resume MyFirstCall_Exit
Exit Function

Public Sub MySecondCall() As Boolean

Const ProcName as String = "MySecondCall"
MySecondCall = True
On Error Goto MySecondCall_Error

' the real code, including

If Not MyThirdCall Then Err.Raise AppErrorNum

MySecondCall_Exit:
'tidy-up code
Exit Function

MySecondCall_Error:
MySecondCall = False
ErrorMsg = "Error in " & ProcName & vbNewLine & _
"Error: " & Err.Number & ", " & Err.Description
Resume MySecondCall_Exit
Exit Function

Public Sub MyThirdCall() As Boolean

Const ProcName as String = "MyThirdCall"
MyThirdCall = True
On Error Goto MyThirdCall_Error

' the real code

MyThirdCall_Exit:
'tidy-up code
Exit Function

MyThirdCall_Error:
MyThirdCall= False
ErrorMsg = "Error in " & ProcName & vbNewLine & _
"Error: " & Err.Number & ", " & Err.Description
Resume MyThirdCall_Exit
Exit Function

--
__________________________________
HTH

Bob

"
m wrote in message
...
I'm running a procedure that calls other macros. In one of these macros I
have an if then statement that if true I want to exit the entire
procedure.
What is the code for this? Exit Sub just exits the current sub I'm
running,
not the entire larger one.

Thanks

Adam Bush



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
run procedure when exit design mode Wim SKW Excel Discussion (Misc queries) 1 July 11th 07 09:24 AM
Procedure is too big Frank Situmorang Excel Worksheet Functions 2 May 2nd 07 05:06 AM
VBA Procedure Jeff Excel Discussion (Misc queries) 0 January 20th 06 04:22 PM
What is procedure to exit formula auditing mode? W8 Excel Discussion (Misc queries) 3 February 14th 05 08:05 PM


All times are GMT +1. The time now is 04:01 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"