VBA | Abbrechen des Hineinschreibens bei Überschreitung der TxBOX der UserForm?
Hallo miteinander.
Ich bräuchte unbedingt mal ein paar Profi-Tipps.
Ich habe einen Code, welcher eingetragene Daten aus der UserForm abspeichert und in verschiedene Tabellen übernimmt.
Soll die Textbox jedoch einen höheren Wert als 100 beinhalten, soll das hineinschreiben und alle weiteren Befehle abgebrochen werden.
Eine weitere UserForm soll als popup auftauchen. bzw. mit popup.show
Die frage, welche ich mir stelle ist:
Wie bekomme ich es hin, dass sich das Popup-Fenster öffnet und das Eintragen der Textbox in die Tabellen gar nicht erst stattfindet.
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
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
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
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?