Nested Ifs

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I need 3 consecutive message boxes to show if conditions are met
and User responds yes.
I can make 2 work but I can't get the 3rd IF to work.
e.g.,
This portion works fine:
 
If date1 > Date Then
MsgBox "Cancel Action", vbOKOnly
ElseIf date1 <= Date Then
Response = MsgBox (" Are you sure?",vbYesNoCancel)
If Response = vbYes Then
MsgBox "Do Action",vbYesNoCancel
End If
End If

Indenting helps to see the flow.
 
Thanks, Bob,
I appreciate it!

Bob Phillips said:
If date1 > Date Then
MsgBox "Cancel Action", vbOKOnly
ElseIf date1 <= Date Then
Response = MsgBox (" Are you sure?",vbYesNoCancel)
If Response = vbYes Then
MsgBox "Do Action",vbYesNoCancel
End If
End If

Indenting helps to see the flow.
 
Bob,
I thought I had it all but I am still having trouble with the vbNo.
Where do you position the vbNo 'do nothing ?
Thanks,

Bob Phillips said:
If date1 > Date Then
MsgBox "Cancel Action", vbOKOnly
ElseIf date1 <= Date Then
Response = MsgBox (" Are you sure?",vbYesNoCancel)
If Response = vbYes Then
MsgBox "Do Action",vbYesNoCancel
End If
End If

Indenting helps to see the flow.
 
Myriam,

As it is the vbNo does nothing already.

YOu are not referring to the first message are you?

--

HTH

RP

Myriam said:
Bob,
I thought I had it all but I am still having trouble with the vbNo.
Where do you position the vbNo 'do nothing ?
Thanks,
 
Yes, Bob, I still need more help.
See below:

If date1 > Date Then
MsgBox "Cancel Action", vbOKOnly
ElseIf date1 <= Date Then
Response = MsgBox (" Are you sure?",vbYesNoCancel)
If Response =vbNo
'do nothing
ElseIf Response = vbYes Then
MsgBox "Do Action",vbYesNoCancel
If Response=vbNo
'do nothing
ElseIf Response =vbYes
Save....etc.....do the specified action
End If
End If
End If
----------------------
The 1st vbNo 'do nothing works fine. It is the second response that still
preforms
the actions as if the response had been a vbYes.
In other words vbYes and vb No perform the action that should only be done
if vbYes is pressed.
Thanks!
 
Myriam,

How is this?

If date1 > Date Then
MsgBox "Cancel Action", vbOKOnly
ElseIf date1 <= Date Then
Response = MsgBox(" Are you sure?", vbYesNoCancel)
If Response = vbNo Then
'do nothing
ElseIf Response = vbYes Then
Response = MsgBox("Do Action", vbYesNoCancel)
If Response = vbNo Then
'do nothing
ElseIf Response = vbYes Then
Save....etc.....do the specified action
End If
End If
End If
 
It's still doing the same. vbNo and Cancel are acting just like vbYes in the
last msg.
Does it work in yours? Maybe I need to clean my wkbk?
 
I don't know what your problem could be. I ran the following, and got the
proper feedback as to what my response was to the Do Action message.

Sub Test()
Dim Date1 As Date
Dim Response As Long

Date1 = Int(Now()) - 1

If Date1 > Date Then
MsgBox "Cancel Action", vbOKOnly

ElseIf Date1 <= Date Then
Response = MsgBox(" Are you sure?", vbYesNoCancel)

If Response = vbNo Then

ElseIf Response = vbYes Then
Response = MsgBox("Do Action", vbYesNoCancel)

If Response = vbNo Then
MsgBox "no"
ElseIf Response = vbCancel Then
MsgBox "cancel"
ElseIf Response = vbYes Then
MsgBox "yes"
End If

End If
End If
End Sub

BTW, you don't really need to parts where you test for something but then
don't do anything, i.e. it could be just


Sub Test()
Dim Date1 As Date
Dim Response As Long

Date1 = Int(Now()) - 1

If Date1 > Date Then
MsgBox "Cancel Action", vbOKOnly

ElseIf Date1 <= Date Then
Response = MsgBox(" Are you sure?", vbYesNoCancel)

If Response = vbYes Then
Response = MsgBox("Do Action", vbYesNoCancel)

If Response = vbYes Then
MsgBox "yes"
End If

End If
End If
End Sub



It's still doing the same. vbNo and Cancel are acting just like vbYes in the
last msg.
Does it work in yours? Maybe I need to clean my wkbk?
If date1 > Date Then
MsgBox "Cancel Action", vbOKOnly
ElseIf date1 <= Date Then
Response = MsgBox(" Are you sure?", vbYesNoCancel)
If Response = vbNo Then
'do nothing
ElseIf Response = vbYes Then
Response = MsgBox("Do Action", vbYesNoCancel)
If Response = vbNo Then
'do nothing
ElseIf Response = vbYes Then
Save....etc.....do the specified action
End If
End If
End If
 
Same here.

--

HTH

RP

Myrna Larson said:
I don't know what your problem could be. I ran the following, and got the
proper feedback as to what my response was to the Do Action message.

Sub Test()
Dim Date1 As Date
Dim Response As Long

Date1 = Int(Now()) - 1

If Date1 > Date Then
MsgBox "Cancel Action", vbOKOnly

ElseIf Date1 <= Date Then
Response = MsgBox(" Are you sure?", vbYesNoCancel)

If Response = vbNo Then

ElseIf Response = vbYes Then
Response = MsgBox("Do Action", vbYesNoCancel)

If Response = vbNo Then
MsgBox "no"
ElseIf Response = vbCancel Then
MsgBox "cancel"
ElseIf Response = vbYes Then
MsgBox "yes"
End If

End If
End If
End Sub

BTW, you don't really need to parts where you test for something but then
don't do anything, i.e. it could be just


Sub Test()
Dim Date1 As Date
Dim Response As Long

Date1 = Int(Now()) - 1

If Date1 > Date Then
MsgBox "Cancel Action", vbOKOnly

ElseIf Date1 <= Date Then
Response = MsgBox(" Are you sure?", vbYesNoCancel)

If Response = vbYes Then
Response = MsgBox("Do Action", vbYesNoCancel)

If Response = vbYes Then
MsgBox "yes"
End If

End If
End If
End Sub




If date1 > Date Then
MsgBox "Cancel Action", vbOKOnly
ElseIf date1 <= Date Then
Response = MsgBox(" Are you sure?", vbYesNoCancel)
If Response = vbNo Then
'do nothing
ElseIf Response = vbYes Then
Response = MsgBox("Do Action", vbYesNoCancel)
If Response = vbNo Then
'do nothing
ElseIf Response = vbYes Then
Save....etc.....do the specified action
End If
End If
End If
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top