Help with if elseif verification

S

stewart

I am having difficulty with my code. I have a userform with several
textboxes. The user enters the number of cashiers into txtQty.
txtCnt is the number of cashiers actually listed. I want to check to
make sure the number of cashiers entered does not exceed the actual
number of cashiers. if it does a message box displays the
difference. If not it continues on with the rest of the code. I put
in the MsgBox " its not working" to help test. the code works as
designed unless txtQty is 10 or over regardless of the value of
txtCnt.


If Not IsNumeric(txtQty.Value) Then
MsgBox "Please enter a cashier number"
Exit Sub
ElseIf txtQty.Value > txtCnt.Value Then
MsgBox txtQty.Value - txtCnt.Value

Exit Sub

ElseIf txtQty.Value > 10 Then
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "You chose " & txtQty.Value & " cashiers. Is this correct?"
Style = vbYesNo + vbCritical + vbDefaultButton2
Title = "Verify Input"
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbNo Then
MsgBox "Please re-enter the correct number of cashiers"
Exit Sub
Else: GoTo x
End If
Else: MsgBox " its not working"
Exit Sub
 
D

Dave Peterson

Just a suggestion...

If you indent your code and use block If/Then/Else, it may be easier to
read/debug your code.

Depending on where that X label is, you may not even need it. Your code could
just follow that path.


Dim Msg, Style, Title, Help, Ctxt, Response, MyString
If Not IsNumeric(txtQty.Value) Then
MsgBox "Please enter a cashier number"
Exit Sub
ElseIf txtQty.Value > txtCnt.Value Then
MsgBox txtQty.Value - txtCnt.Value
Exit Sub
ElseIf txtQty.Value > 10 Then
Msg = "You chose " & txtQty.Value & " cashiers. Is this correct?"
Style = vbYesNo + vbCritical + vbDefaultButton2
Title = "Verify Input"
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbNo Then
MsgBox "Please re-enter the correct number of cashiers"
Exit Sub
Else
GoTo x
End If
Else
MsgBox "its not working"
Exit Sub
End if
 
C

Christopher King

Stewart,
I removed some "dots" to test this without a form. The following seems to
work. Hope this helps.
Chris

Sub Hmm()

Dim Msg, Style, Title, Response
Dim txtQtyValue As Integer
Dim txtCntValue As Integer
txtQtyValue = 11
txtCntValue = 15

x:
' Code to get new value.
'
'...

If Not IsNumeric(txtQtyValue) Then
MsgBox "Please enter a cashier number"
Exit Sub
ElseIf txtQtyValue > txtCntValue Then
MsgBox txtQtyValue - txtCntValue
Exit Sub
ElseIf txtQtyValue > 10 Then
Msg = "You chose " & txtQtyValue & " cashiers. Is this correct?"
Style = vbYesNo + vbCritical + vbDefaultButton2
Title = "Verify Input"
Response = MsgBox(Msg, Style, Title)
If Response = vbNo Then
MsgBox "Please re-enter the correct number of cashiers"
Exit Sub
Else
GoTo x
End If
Else
MsgBox " its not working"
Exit Sub
End If

End Sub
 

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

Top