HERBERS Excel-Forum - das Archiv
Frage an die Profis
Dirk

Schönen Guten Abend,
ich habe eine Abfrage mit einer Textbox versehen, welche eine Meldung ausgibt, sobald kein Komma oder Zahl eingegeben wird:

Function My_IsNumeric(Txt As String) As Boolean
If (Txt <> "") And (Not IsNumeric(Txt) Or InStr(Txt, ".") <> 0) Then
My_IsNumeric = False
Else
My_IsNumeric = True
End If
End Function
Private Sub TextBox2_Change()
Dim Txt As String
Txt = TextBox2.Text
If My_IsNumeric(Txt) Then
Exit Sub
Else
Beep
MsgBox "Bitte eine gültige Zahl eingeben (Komma, kein Punkt)!", vbCritical
TextBox2.Text = ""
End If
End Sub
Jetzt würde ich diese aber gerne mit Einheit angeben wie folgt:
Private Sub TextBox3_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim k As Integer
k = TextBox2.Text
k = Replace(k, " [N/kg]", "")
k = s & " [N/kg]"
TextBox2 = k
End Sub
Jetzt weiss ich nicht genau, wie ich die Ausnahme [N/kg] in die Abfrage oben hineinwurschteln muss?
Schöne Grüße,
Dirk

AW: Frage an die Profis
Dirk

Die PrivateFunction KeyUp ist natürlich TextBox2!
AW: Frage an die Profis
Josef

Hallo Dirk,
ich mach das so, keine Meldung, sondern nur Zahlen und Komma zulassen und der Zusatz wird beim Verlassen der TB angehängt.
Private Sub TextBox3_Enter()
  TextBox3 = Replace(TextBox3, " [N/kg]", "")
End Sub

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  TextBox3 = Replace(TextBox3, " [N/kg]", "") & " [N/kg]"
End Sub

Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  Select Case KeyAscii
    Case 44, 46 'Komma und Punkt(wird auch zu Komma)
      If InStr(1, TextBox3, Chr(44)) = 0 Then
        KeyAscii = 44
      Else
        KeyAscii = 0
      End If
    Case 48 To 57 'Zahlen
    Case Else
      KeyAscii = 0
  End Select
End Sub


Gruß Sepp

AW: Frage an die Profis
Dirk

Hallo Sepp,
vielen lieben Dank!
Grüße, Dirk
Wer sucht im Archiv nach "Profis"?
Jörg-HH

Hallo Dirk,
das Archiv ist 'ne tolle Sache und kann eine Menge Fragen im Forum ersparen. Geht aber nur, wenn die Betreffs entsprechend benannt werden...
Einfach "Userform" o.ä. im Betreff ist aber auch schon ungeeignet. Davon gibt es zig Beiträge - wer will die alle einzeln öffnen, um zu gucken, ob vielleicht die eigene Frage damit beantwortet wird...? Ein Betreff "dreieckige Userform erstellen" wäre da schon sinnvoller.
Wenn dein Betreff zB. Begriffe wie Textbox, Einheit oder so enthielte, könnte deine Frage ein Treffer bei einer Suche sein, und spätere Generationen von Fragern hätten auch was von Sepps Antwort. So aber wird deine Frage im Nirwana des Archivs verschwinden und die Antwort wird niemandem mehr nützen.
Schönen Abend - Jörg