VBA-TexBox

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
TextBox MsgBox


Excel-Version: 2000
nach unten

Betrifft: VBA-TexBox
von: Ernst Dunkel
Geschrieben am: 02.05.2002 - 22:34:31

Problemstellung:
Die Prozedur hat einen kleinen Fehler:
Wenn ich in die TexBox1 eine ganze Zahl (z.B. 1) eingebe Funktioniert das Makro meinen Erwartungen. Gebe ich jedoch eine Dezimalzahl ein (z.B. 1.5), dann wird aus 1.5 [37377] (Datumszahl) was falsch ist!

Muss ich in “Eigenschaften-TextBox1“ einen Wert verändern oder im Makro etwas ergänzen? Wer kann mir weiter helfen?

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox1.Text) = 0 Then Exit Sub
If Not IsNumeric(TextBox1.Text) Then
MsgBox "Sie müssen die Anzahl Ventile pro Stockwerk eingeben!"
Cancel = True
End If
End Sub


nach oben   nach unten

Re: VBA-TexBox
von: MRR
Geschrieben am: 03.05.2002 - 06:04:57

Wo wird denn aus dem Wert ein Datum? Doch wohl erst, wenn Du ihn eine Zelle schreibst, oder? Und der Code fehlt hier...
Bei der Eingabe in die Textbox solltest Du auf jeden Fall darauf achten, dass Du sie in der deutschen Notation eingibst: 1,5 (NICHT 1.5). Wir benutzen das Komma als Dezimalzeichen - nur in der Programmierung müssen wir uns an den internationalen (= anglo-amerikanischen) Standard halten...
Matthias
nach oben   nach unten

Re: VBA-TexBox
von: Ernst Dunkel
Geschrieben am: 03.05.2002 - 10:03:31

Hallo Matthias

Der Wert wird über geben durch folgende Einstellung in Eigenschaften-TextBox1

bei ControlSource = Tabele1!A1


nach oben   nach unten

Re: Bemerkungen
von: Ernst Dunkel
Geschrieben am: 05.05.2002 - 20:02:21

Ich habe das Problem nun umgangen, in dem ich nur Zahlenwerte eingeben kann(Ascii 48 bis 57)! Mein Problem muss bei der Eigenschaften-TextBox liegen. In der Schweiz verwenden wir als Dezimalpunkt das Punktzeichen und nicht das Kommazeichen, vieleicht liegt es daran.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim TMP$
Dim i%
For i = 48 To 57
TMP = TMP & Chr(i)
Next i
TMP = TMP & LCase(TMP)
If InStr(1, TMP, Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Zufallsstichprobe ziehen"