ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Yes/No Msgbx doesn't follow directions (https://www.excelbanter.com/excel-programming/419589-yes-no-msgbx-doesnt-follow-directions.html)

iashorty

Yes/No Msgbx doesn't follow directions
 
I have written the following lines:
Range(Person).Select
If Range(Person).Select "" Then
resp = MsgBox("The person you have selected already has comments." &
Chr(13) & "Do you want to overwrite?", 4, WARNING)
If Response = vbNo Then
Windows("Personwin").Close
Exit Sub
If Response = vbYes Then
End If
End If
End If

Basically the person can change depending on the input. But, each person has
their own column and if the column already has comments, then I want to be
sure the user wants to write over these comments.

If the answer is 'no', then I want the window closed that was opened to
receive the comments (Personwin).

If the answer is 'yes', then I want the macro to continue with recording the
comments, etc.

When the macro runs and I click 'no', the macro continues instead of closin
the window and stopping.

Can someone please explain what I did wrong?

Mike H

Yes/No Msgbx doesn't follow directions
 
Hi,

Maybe something like this

Range("Person").Select
If Range("Person").Value < "" Then
Resp = MsgBox("The person you have selected already has comments." & _
Chr(13) & "Do you want to overwrite?", vbYesNo, "WARNING")
If Resp = vbYes Then
MsgBox "User pressed OK what do you want to do?"
Else
Windows("Personwin").Close
Exit Sub
End If
End If

Mike

"iashorty" wrote:

I have written the following lines:
Range(Person).Select
If Range(Person).Select "" Then
resp = MsgBox("The person you have selected already has comments." &
Chr(13) & "Do you want to overwrite?", 4, WARNING)
If Response = vbNo Then
Windows("Personwin").Close
Exit Sub
If Response = vbYes Then
End If
End If
End If

Basically the person can change depending on the input. But, each person has
their own column and if the column already has comments, then I want to be
sure the user wants to write over these comments.

If the answer is 'no', then I want the window closed that was opened to
receive the comments (Personwin).

If the answer is 'yes', then I want the macro to continue with recording the
comments, etc.

When the macro runs and I click 'no', the macro continues instead of closin
the window and stopping.

Can someone please explain what I did wrong?


iashorty

Yes/No Msgbx doesn't follow directions
 
The yes sequence is hundreds of lines long because it is basically saying
continue with the macro. This is why I was trying to put the 'no' first. The
'no is simply close; the 'yes' then ends the if and continues on.


"Mike H" wrote:

Hi,

Maybe something like this

Range("Person").Select
If Range("Person").Value < "" Then
Resp = MsgBox("The person you have selected already has comments." & _
Chr(13) & "Do you want to overwrite?", vbYesNo, "WARNING")
If Resp = vbYes Then
MsgBox "User pressed OK what do you want to do?"
Else
Windows("Personwin").Close
Exit Sub
End If
End If

Mike

"iashorty" wrote:

I have written the following lines:
Range(Person).Select
If Range(Person).Select "" Then
resp = MsgBox("The person you have selected already has comments." &
Chr(13) & "Do you want to overwrite?", 4, WARNING)
If Response = vbNo Then
Windows("Personwin").Close
Exit Sub
If Response = vbYes Then
End If
End If
End If

Basically the person can change depending on the input. But, each person has
their own column and if the column already has comments, then I want to be
sure the user wants to write over these comments.

If the answer is 'no', then I want the window closed that was opened to
receive the comments (Personwin).

If the answer is 'yes', then I want the macro to continue with recording the
comments, etc.

When the macro runs and I click 'no', the macro continues instead of closin
the window and stopping.

Can someone please explain what I did wrong?


Mike

Yes/No Msgbx doesn't follow directions
 
In your post you have resp = MsgBox

Not Response = MsgBox

If Response = vbNo Then 'Should be if resp = vbNo
"iashorty" wrote:

I have written the following lines:
Range(Person).Select
If Range(Person).Select "" Then
resp = MsgBox("The person you have selected already has comments." &
Chr(13) & "Do you want to overwrite?", 4, WARNING)
If Response = vbNo Then
Windows("Personwin").Close
Exit Sub
If Response = vbYes Then
End If
End If
End If

Basically the person can change depending on the input. But, each person has
their own column and if the column already has comments, then I want to be
sure the user wants to write over these comments.

If the answer is 'no', then I want the window closed that was opened to
receive the comments (Personwin).

If the answer is 'yes', then I want the macro to continue with recording the
comments, etc.

When the macro runs and I click 'no', the macro continues instead of closin
the window and stopping.

Can someone please explain what I did wrong?


iashorty

Yes/No Msgbx doesn't follow directions
 
I tried the following:
Range(Person).Select
If Range(Person).Select "" Then
resp = MsgBox("The person you have selected already has comments." &
Chr(13) & "Do you want to overwrite?", 4, WARNING)
If Response = vbNo Then
Windows("Personwin").Close
Exit Sub
Else
End If
End If

I reads the If Response line and then skips to the End if lines.


"Mike H" wrote:

Hi,

Maybe something like this

Range("Person").Select
If Range("Person").Value < "" Then
Resp = MsgBox("The person you have selected already has comments." & _
Chr(13) & "Do you want to overwrite?", vbYesNo, "WARNING")
If Resp = vbYes Then
MsgBox "User pressed OK what do you want to do?"
Else
Windows("Personwin").Close
Exit Sub
End If
End If

Mike

"iashorty" wrote:

I have written the following lines:
Range(Person).Select
If Range(Person).Select "" Then
resp = MsgBox("The person you have selected already has comments." &
Chr(13) & "Do you want to overwrite?", 4, WARNING)
If Response = vbNo Then
Windows("Personwin").Close
Exit Sub
If Response = vbYes Then
End If
End If
End If

Basically the person can change depending on the input. But, each person has
their own column and if the column already has comments, then I want to be
sure the user wants to write over these comments.

If the answer is 'no', then I want the window closed that was opened to
receive the comments (Personwin).

If the answer is 'yes', then I want the macro to continue with recording the
comments, etc.

When the macro runs and I click 'no', the macro continues instead of closin
the window and stopping.

Can someone please explain what I did wrong?


iashorty

Yes/No Msgbx doesn't follow directions
 
that was it, thank you.


"Mike" wrote:

In your post you have resp = MsgBox

Not Response = MsgBox

If Response = vbNo Then 'Should be if resp = vbNo
"iashorty" wrote:

I have written the following lines:
Range(Person).Select
If Range(Person).Select "" Then
resp = MsgBox("The person you have selected already has comments." &
Chr(13) & "Do you want to overwrite?", 4, WARNING)
If Response = vbNo Then
Windows("Personwin").Close
Exit Sub
If Response = vbYes Then
End If
End If
End If

Basically the person can change depending on the input. But, each person has
their own column and if the column already has comments, then I want to be
sure the user wants to write over these comments.

If the answer is 'no', then I want the window closed that was opened to
receive the comments (Personwin).

If the answer is 'yes', then I want the macro to continue with recording the
comments, etc.

When the macro runs and I click 'no', the macro continues instead of closin
the window and stopping.

Can someone please explain what I did wrong?


JLGWhiz

Yes/No Msgbx doesn't follow directions
 
The yes sequence is hundreds of lines long because it is basically saying
continue with the macro. This is why I was trying to put the 'no' first. The
'no is simply close; the 'yes' then ends the if and continues on.

Just a follow up on your comments above. In an If...Then statement where
the choice is yes or no, it really does not matter which option is tested
first because only the one that is true is going to execute anyhow. In other
words, if Resp did not equal vbYes, then VBA would ignore any executable
command and then test for the If Resp = vbNo criteria. It will only execute
the statement that is true.

"iashorty" wrote:

that was it, thank you.


"Mike" wrote:

In your post you have resp = MsgBox

Not Response = MsgBox

If Response = vbNo Then 'Should be if resp = vbNo
"iashorty" wrote:

I have written the following lines:
Range(Person).Select
If Range(Person).Select "" Then
resp = MsgBox("The person you have selected already has comments." &
Chr(13) & "Do you want to overwrite?", 4, WARNING)
If Response = vbNo Then
Windows("Personwin").Close
Exit Sub
If Response = vbYes Then
End If
End If
End If

Basically the person can change depending on the input. But, each person has
their own column and if the column already has comments, then I want to be
sure the user wants to write over these comments.

If the answer is 'no', then I want the window closed that was opened to
receive the comments (Personwin).

If the answer is 'yes', then I want the macro to continue with recording the
comments, etc.

When the macro runs and I click 'no', the macro continues instead of closin
the window and stopping.

Can someone please explain what I did wrong?



All times are GMT +1. The time now is 07:55 AM.

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