Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

UF: Numerische Dateneingabe überlistet

Betrifft: UF: Numerische Dateneingabe überlistet von: Marcel
Geschrieben am: 22.06.2006 11:26:34

Hallo

Habe in UF Eingabefelder, in denen numerische Werte erfasst werden müssen. Dass dies erfolgt, habe ich folgenden Code verwendet:

If IsNumeric(TextBox370.Value) Then
Range("H223").Value = TextBox370.Value
Else
MsgBox "Please enter number of pieces!", _
vbExclamation, "Rules"
TextBox370.Value = "0"
End If

Nun habe ich so einen Schlaumeier, der hat statt 4 den Wert 4' (also mit Apostroph als Tausender) erfasst. Das wird offensichtlich durch obigen Code zugelassen, führt aber in den Tabellen zu Fehlermeldung, da das kein numerischer Wert ist.

Kann mir Da bitte jemand weiterhelfen?

Vielen Dank
Marcel

  


Betrifft: AW: UF: Numerische Dateneingabe überlistet von: fcs
Geschrieben am: 22.06.2006 11:40:05

Hallo Marcel,

mit folgenden Makros kannst du für Textboxen die Eingabe auf Zahlen einschränken.
' Makros die die Eingabe von Zahlen erzwingen (nur Zahlen und Komma sind möglich)
Private Sub TextBox370_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  Call Zahleneingabe(KeyAscii)
End Sub

Private Sub Zahleneingabe(KeyAscii)
'   nur Ziffern und Komma können in Textbox eingegeben
  Select Case KeyAscii
    Case 48 To 57 'Ziffern 0 bis 9
    Case Asc(",")
    Case Else
      KeyAscii = 0
  End Select
End Sub

Beide Makros unter dem entsprechenden. Userform einfügen.

Gruß
Franz


  


Betrifft: AW: UF: Numerische Dateneingabe überlistet von: Erich G.
Geschrieben am: 22.06.2006 11:46:04

Hallo Marcel,

wie soll das Makro denn auf die Eingabe reagieren? Da gibt es noch 3 Möglichkeiten:

- Eingabe ablehnen
If IsNumeric(TextBox370.Value) And InStr(TextBox370, "'") = 0 Then

- 4000 in die Zelle schreiben
Range("H223").Value = 1000 * CDbl(TextBox370.Value)

- 4 in die Zelle schreiben
Range("H223").Value = CDbl(TextBox370.Value)

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


 

Beiträge aus den Excel-Beispielen zum Thema "UF: Numerische Dateneingabe überlistet"