Hallo Gast,
Die Fehleingabe kannst du nicht verhindern. Aber du kannst darauf reagieren. z.b. mit folgendem Code im Userform:
Private Sub TextBox1_Change()
If TextBox1 <> "" And (TextBox1 < 4 Or TextBox1 > 5) Then
MsgBox "Bitte geben Sie einen Wert zwischen 4 und 5 ein"
TextBox1 = ""
End If
End Sub
Anstatt im Textbox Change-Ereignis kannst du den If-Block auch im Click-Ereignis eines CommandButtons zeigen, wenn dir das lieber ist.
Die ganze Zeit gings darum das Form bei Excelstart auszuführen und jetzt willst du es bei Klick auf eine Schaltfläche ausführen? Ok auch das geht. Wie ich bereits schrieb musst du in einem Makro deiner Wahl nur den Namen des Userforms gefolgt von .Show angeben.
Sub FormOeffnen()
UserForm1.Show
End Sub
Diese Makro gehört in ein allgemeines Modul (z.B. Modul1) dann kannst du es per Rechtsklick auf die Schaltfläche mit "Makro zuweisen", zuweisen.
Excel ist nicht Access, du kannst hier keine Felder hinterlegen. Wenn du Excel als Datenbank missbrauchen willst (davon rate ich ab) musst du alles im Codefenster des Userforms abhandeln. z.B. so:
Private Sub CommandButton1_Click()
With Sheets("Tabelle1")
zei = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
Range("A" & zei).Value = TextBox1.Value
Range("B" & zei).Value = TextBox2.Value
Range("D" & zei).Value = TextBox3.Value
End With
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
End Sub
Gruß Mr. K.
|