View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Paul Black Paul Black is offline
external usenet poster
 
Posts: 394
Default MsgBox with Two Questions

Thanks for the reply Dave,

If yes, then maybe you can turn "Test" into a Function so that it returns some
sort of indicator so that "Main" Sub knows what happened there.


You are quite right, the answer is "Yes".

The "Main" Sub works great. What I am trying to achieve is that two
questions need to be answered, and depending on those answers then
some action is taken.

If the answer to Question1 is "Yes" Then
Ask Question2
Else
If the answer to Question1 is "No" Then
Goto Sheet("W").Range("B3") and Exit the "Test" Sub or Function

If the answer to Question2 is "No" Then
Goto Sheet("W").Range("B5") and Exit the "Test" Sub or Function
Else
If the answer to Question2 is "Yes" Then
Continue to run the "test" Sub or Function

Thanks in Advance.
All the Best.
Paul

On Sep 15, 10:11 pm, Dave Peterson wrote:
So you're calling Test from Main?

If yes, then maybe you can turn Test into a function so that it returns some
sort of indicator so that Main knows what happened the

Option Explicit
Sub Main()

dim Resp as string 'matches what Test returns
resp = Test

if resp = "VbNo to question1" then
'do what you want
else
'do something else
end if
end sub

Private Function Test() As String

Dim Question1 As Variant
Dim Question2 As Variant
Dim myStr As String

myStr = ""
Question1 = MsgBox( _
"Text." & vbNewLine & _
Worksheets("W").Range("B3").Value & vbNewLine _
& vbNewLine & _
"Click YES if either of the following are TRUE :- " & vbNewLine
& _
"(1) Text." & vbNewLine & _
"(2) Text." & vbNewLine & _
" (Text)" & vbNewLine _
& vbNewLine & _
"Click NO if either of the following are TRUE :-" & vbNewLine &
_
"(1) Text." & vbNewLine & _
"(2) Text.", vbYesNo, "Title")
If Question1 < vbYes Then
Application.Goto Reference:=Sheets("W").Range("B3")
myStr = "VbNo to question1"
Test = myStr
Exit Function
End If

Question2 = MsgBox( _
"Text." & vbNewLine _
& vbNewLine & _
"Text." & vbNewLine & _
"Text.", vbYesNo, "Title")
If Question2 < vbYes Then
Application.Goto Reference:=Sheets("W").Range("B5")
Exit Function
End If
End Function





Paul Black wrote:

Hi everybody,


I have the code ...


Private Sub Test()


Dim Question1 As Variant
Dim Question2 As Variant


Question1 = MsgBox( _
"Text." & vbNewLine & _
Worksheets("W").Range("B3").Value & vbNewLine _
& vbNewLine & _
"Click YES if either of the following are TRUE :- " & vbNewLine & _
"(1) Text." & vbNewLine & _
"(2) Text." & vbNewLine & _
" (Text)" & vbNewLine _
& vbNewLine & _
"Click NO if either of the following are TRUE :-" & vbNewLine & _
"(1) Text." & vbNewLine & _
"(2) Text.", vbYesNo, "Title")
If Question1 < vbYes Then
Application.Goto Reference:=Sheets("W").Range("B3")
Exit Sub
End If


Question2 = MsgBox( _
"Text." & vbNewLine _
& vbNewLine & _
"Text." & vbNewLine & _
"Text.", vbYesNo, "Title")
If Question2 < vbYes Then
Application.Goto Reference:=Sheets("W").Range("B5")
Exit Sub
End If
End Sub


... which unfortunately does NOT goto the correct cell if the answer
is NO, it exits the "Test" Sub but still runs the "Main" Sub instead
of exiting the "Main" Sub.
I call the "Test" Sub above from the beginning of the "Main" Sub.
It appears to exit the "Test" Sub but it does NOT exit the "Main"
Sub.
Any ideas will be greatly appreciated.


Thanks in Advance.
All the Best.
Paul


--

Dave Peterson- Hide quoted text -

- Show quoted text -