Posted to microsoft.public.excel.programming
|
|
Catch a wrong value
Try using this to activate the TextBox...
TextBox11.SetFocus
--
Rick (MVP - Excel)
"Patrick C. Simonds" wrote in message
...
After the msgbox is dismissed I need TextBox11 to be active.
"Rick Rothstein" wrote in message
...
TextBox11.Value = Format(Application.Text(Replace(TextBox11.Value, ":",
""), "00\:00"), "hh:mm")
First off, you don't need to use the worksheet's Text function to do the
above... VB's Format function can do it.
TextBox11.Value = Format(Format(Replace(TextBox11.Value, ":", ""),
"00\:00"), "hh:mm")
However, you need to break that line up into two lines in order to test
if the input is a valid time...
TestDateVariable = Format(Replace(TextBox11.Value, ":", ""), "00\:00")
If IsDate(TestDateVariable) Then
TextBox11.Value = Format(TestDateVariable, "hh:mm")
'
' Rest of your code goes here
'
Else
MsgBox "That is not a valid time value!!!"
'
' Not sure what you will want to do next
'
End If
--
Rick (MVP - Excel)
"Patrick C. Simonds" wrote in message
...
I am looking for something that will catch if the user does not enter a
valid time. For example if they were to enter 0995 instead of 0955.
What I need is if they do enter a wrong value that a msgbox would pop up
telling them there value was not correct and then reselect the textbox
so that the value can be changed.
Below is my code as it stands now.
Private Sub TextBox11_AfterUpdate()
TextBox11.Value = Format(Application.Text(Replace(TextBox11.Value,
":", ""), "00\:00"), "hh:mm")
If TextBox12.Value "" Then
If TextBox11.Value "" Then
TextBox13.Value = (TimeValue(TextBox12.Value) -
TimeValue(TextBox11.Value)) * 24
TextBox13.Value = Format(TextBox13.Value, "0.0000")
TextBox1.Value = CDbl("0" & TextBox13.Value) + CDbl("0" &
TextBox23.Value) + CDbl("0" & TextBox33.Value) + CDbl("0" &
TextBox43.Value) + CDbl("0" & TextBox53.Value) + CDbl("0" &
TextBox63.Value) + CDbl("0" & TextBox14.Value) + CDbl("0" &
TextBox24.Value) + CDbl("0" & TextBox34.Value) + CDbl("0" &
TextBox44.Value) + CDbl("0" & TextBox54.Value) + CDbl("0" &
TextBox64.Value)
TextBox1.Text = Format(TextBox1.Text, "0.0000")
End If
End If
'Test that to see if hours worked exceeds shift length
If TextBox12.Value "" Then
If TextBox11.Value "" Then
TextBox2 = TextBox4 - TextBox1
End If
If TextBox2.Value < 0 Then
TextBox2.Value = 0
GoTo Finished
End If
TextBox2 = TextBox4 - TextBox1
TextBox2.Text = Format(TextBox2.Text, "0.0000")
End If
Finished:
If TextBox12.Value = "" Then
TextBox13.Value = ""
End If
If TextBox11.Value = "" Then
TextBox13.Value = ""
End If
End Sub
|