ich habe eine TextBox auf einer UserForm, welche für Bemerkungen gedacht ist.
Die Bemerkung darf nur eine bestimmte Länge haben.
Diese Prüfe ich und wenn die erlaubte Länge Überschritten wird, soll nur noch
das Löschen von Text innerhalb der TextBox zugelassen werden.
Ich weiß aber nicht ganz wie ich das anstellen soll.
Habt ihr da eine Idee?
Hier Code falls er euch interessiert:
Private Sub TextBox1_Change()
Dim curLength As Integer
Dim curString As String
curString = TextBox1.Value
curLength = Len(curString)
Call check_Length_of_Input(curLength)
End Sub
Function check_Length_of_Input(ByVal curLength As Integer) As Integer
Dim maxLength As Integer
Dim stopInput As Boolean
On Error Resume Next
stopInput = False
maxLength = Len("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
check_Length_of_Input = maxLength
check_Length_of_Input = check_Length_of_Input - curLength
stopInput = Length_of_Input_is_Invalid(maxLength, curLength)
Select Case stopInput
Case False
UserForm2.TextBox1.Locked = False
UserForm2.Label1.Caption = check_Length_of_Input
Case True
UserForm2.Label1.Caption = check_Length_of_Input
UserForm2.TextBox1.Locked = True
Call warning_Message_for_Input
End Select
End Function
Function Length_of_Input_is_Invalid(ByVal maxLength As Integer, _
ByVal curLength As Integer) As Boolean
On Error Resume Next
If maxLength - curLength = 0 Then
Length_of_Input_is_Invalid = True
End If
End Function
Function warning_Message_for_Input()
Dim warning As Byte
On Error Resume Next
warning = MsgBox("Die eingegebene Bemerkung übschreitet die erlaubte Zeichenmenge!", _
vbCritical & vbOKOnly, "ACHTUNG!")
If warning = 1 Then
UserForm2.TextBox1.Locked = False
End If
End Function