VBA | Abbrechen des Hineinschreibens bei Überschreitung der TxBOX der UserForm?

2 Antworten

Du musst halt erst die Daten prüfen und erst wenn alles ok ist, überhaupt die Daten eintragen.

Z.B. so:

Private Sub btnOK_Click()
    If IsNumeric(Me.txtEingabe) Then
        If Me.txtEingabe.Value > 100 Then
            MsgBox "Die Eingabe darf höchstens 100 sein"
        Else
            ' Daten in Tabelle schreiben
            [A1] = txtEingabe.Value
        End If
    Else
        MsgBox "Im Feld ""Eingabe"" werden nur Zahlen akzeptiert."
    End If
End Sub
Devo23 
Fragesteller
 28.09.2021, 13:24

Vielen Dank, funktioniert so besser!
Eine weitere Frage @daCypher
Ich habe eine weitere UserFrom die immer auftaucht, sobald in einer Zeile etwas drin steht. Kann ich auch sagen, dass wenn diese UserForm erscheint, der Vorgang aus meinem Sub abgebrochen wird?

0
daCypher  28.09.2021, 13:28
@Devo23

An der Stelle, an der du die UserForm öffnest, kannst du vermutlich auch einfach mit Exit Sub die Prozedur beenden. Für eine genauere Antwort müsste ich deinen Code kennen.

1
Suboptimierer  28.09.2021, 14:11

Kleiner Tipp: Wenn du nur ganzzahlige Werte zulässt, kannst du das Steuerelement "Drehfeld" verwenden. Dort kannst du Min (0) und Max (100) eingeben und beim Ändern des Werts den aktuellen Wert in das Textfeld schreiben. Die Textbox schaltest du auf readonly:

Private Sub df_Change()
   tb.Value = df.Value
End Sub
0

Mit UserForms habe ich noch keine Erfahrung. Du kannst zunächst den Wert abgreifen, der eingeben wurde und überprüfen lassen.

erhaltenerWert = Userform(.....)

If erhaltenerWert > 100 Then 
    MsgBox("Wert zu hoch")
Else 'Wert in Tabelle schreiben.
    Range("A1") = erhaltenerWert