TextBox_Exit træk på CheckValue funktion
Hej EksperterHvad skal jeg gøre for at få nedenstående funktion til at virke ved Exit på flere tekstbokse?
Det virker fint hvis koden er skrevet direkte under eks. TextBox1_Exit og "Me.Controls(TbNavn)" er erstattet med "TextBox1"
Som koden er nedenfor, så er det som om den stopper når den kommer til en with sætning, men jeg kan ikke få den til at melde fejl. "SelLength = Len(.Text)" i with sætningen virker også problematisk.
Håber at der er nogen der kan hjælpe.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
CheckValue
End Sub
'--------------
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
CheckValue
End Sub
'-----------------
Private Function CheckValue()
If Me.Controls(TbNavn) = "" Or Len(Me.Controls(TbNavn)) = 1 Or Len(Me.Controls(TbNavn)) = 2 Or Len(Me.Controls(TbNavn)) = 3 Or Len(Me.Controls(TbNavn)) > 5 Then
Cancel = True
With Me.Controls(TbNavn)
MsgBox "Please enter a time value [hhmm] or [hh:mm]!"
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
ElseIf Left(Me.Controls(TbNavn), 2) > 23 Then
If InStr(TextBox1.Text, ":") Then
Me.Controls(TbNavn).Text = Format(Me.Controls(TbNavn).Text, "hh:mm")
Else
Me.Controls(TbNavn).Text = Format(Me.Controls(TbNavn).Text, "00:00")
End If
Cancel = True
With Me.Controls(TbNavn)
MsgBox "Please enter a time value [hh] between 0 and 23!"
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
ElseIf Len(Me.Controls(TbNavn)) = 4 Then
If InStr(Me.Controls(TbNavn).Text, ":") Then
Cancel = True
With Me.Controls(TbNavn)
MsgBox "Please enter a time value [hhmm] or [hh:mm]!"
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
ElseIf Right(Me.Controls(TbNavn), 2) > 59 Then
Cancel = True
With Me.Controls(TbNavn)
MsgBox "Please enter a time value [mm] between 0 and 59!"
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Else
Me.Controls(TbNavn).Text = Format(Me.Controls(TbNavn).Text, "00:00")
End If
ElseIf Len(Me.Controls(TbNavn)) = 5 Then
If InStr(Me.Controls(TbNavn).Text, ":") Then
If Right(Me.Controls(TbNavn), 2) > 59 Then
Cancel = True
With Me.Controls(TbNavn)
MsgBox "Please enter a time value [mm] between 0 and 59!"
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
Else
Cancel = True
With Me.Controls(TbNavn)
MsgBox "Please enter a time value [hhmm] or [hh:mm]!"
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
End If
End Function