View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Gary Brown[_5_] Gary Brown[_5_] is offline
external usenet poster
 
Posts: 236
Default Tell whether or not Sub B was called by Sub A?

'/-----------------------------------/
Sub A()
Dim SubBCalledFromSubA As Boolean

'first reset Boolean, just in case
SubBCalledFromSubA = False

' .....

SubBCalledFromSubA = True
Call B(SubBCalledFromSubA)
' ....

'reset Boolean
SubBCalledFromSubA = False
End Sub

'/-----------------------------------/
Sub B(Optional blnCheck)
If IsMissing(blnCheck) Then blnCheck = True

If blnCheck = True Then
'code here
MsgBox "It's True!"
End If

If blnCheck = False Then
'some other code here
MsgBox "It's False :O<"
End If
End Sub
'/-----------------------------------/


--
Hope this helps.
If it does, please click the Yes button.
Thanks in advance for your feedback.
Gary Brown



"IanKR" wrote:

For example, if I have two Subs in my project, say A and B, and B may
sometimes be called from within A and at other times it may be run
independently of A, other than setting a global Boolean as illustrated
below, is there a slick way of telling?

Dim SubBCalledFromSubA as Boolean

Sub A()
'first reset Boolean, just in case
SubBCalledFromSubA = FALSE

.....

SubBCalledFromSubA = TRUE
Call B
....

'reset Boolean
SubBCalledFromSubA = FALSE
End Sub

Sub B()
If SubBCalledFromSubA = TRUE Then
'code here
End If

If SubBCalledFromSubA = FALSE Then
'some other code here
End If
End Sub

I thought that Application.Caller (or something similar) might be relevant
here, but it doesn't appear to be, judging by the help file.

Thanks

Ian