Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
636to640
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
636to640
636to640
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textfeld: IsNumeric und Len

Textfeld: IsNumeric und Len
14.07.2005 16:05:53
Stephan
Hallo!
Habe ein kleines Problem bei meinem Programm. Möchte dem Benutzer die Möglichkeit geben Daten (Es müssen Zahlen sein!!!) über ein Userform in ein Textfeld einzugeben. Die Eingabe wird beendet durch einen Button und die eingegebenen Daten werden in irgendwelchen Rechnungen benutzt.
Wie bekomme ich es hin, dass überprüft wird ob wirlich Zahen bzw. ob überhaupt irgendetwas eingetippt wurde.
Habe es so probiert, aber so wird nur überprüft ob es sich bei der Eingabe um Zahlen handelt.
--------------------------------------------------------------------

Private Sub txt_UmgTemp_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(txt_UmgTemp.Text) = 0 Then Exit Sub
If Not IsNumeric(txt_UmgTemp) Then
MsgBox ("Sie müssen einen numerischen Wert eingeben!")
Cancel = True
End If
End Sub

--------------------------------------------------------------------
Stelle es mir eigentlich so vor, dass die Überprüfung ob alle Felder gefüllt sind ausgeführt wird mit dem betätigen des Buttons.
Vielleicht kann mir ja jemand helfen!
Danke für jede Mühe!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textfeld: IsNumeric und Len
14.07.2005 16:47:25
Nepumuk
Servus,
du kannst vorgeben, dass der User nur Zahlen eingeben kann. Soll sich die Zahl in einem bestimmten Bereich bewegen? Sind Vorkommastellen / Nachkommastellen erlaubt? Ich mach dir auf Grund der Vorgaben gerne ein kleines Beispiel.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Textfeld: IsNumeric und Len
15.07.2005 09:25:17
Stephan
Hallo Nepumuk!
Erstmal vielen Dank für dein Angebot!
Es soll eigentlich nur überprüft werden ob es eine Zahl ist. Dabei sollen auf jeden Fall auch Dezimalzahlen erlaubt sein. Der Gedanke einen bereich vorzugeben ist mir noch gar nicht gekommen, wäre aber auch sinnvoll.
Habe es auch schon halbwegs hinbekommen. Führe die Überprüfung anhand des Textbox_Change-Ereignisses durch. Leider erscheint dann die Fehlermedung auch wenn ich eine bereits eingegebene Zahl ändern möchte.
------------------------------------------------------------------------

Private Sub txt_UmgTemp_Change()
If Not IsNumeric(txt_UmgTemp) Then
MsgBox ("Sie müssen einen numerischen Wert eingeben!")
txt_UmgTemp.SetFocus
txt_UmgTemp.SelStart = 0
txt_UmgTemp.SelLength = Len(txt_UmgTemp.Text)
End If
End Sub

------------------------------------------------------------------------
Gibt es dabei vielleicht noch ein sinnvolleres Ereigniss?
Viele Grüße,
Stephan
Anzeige
AW: Textfeld: IsNumeric und Len
15.07.2005 15:24:29
Nepumuk
Servus,
Dani hat dir den Weg schon gezeigt. Ich habe dir mal ein Beispiel gemacht. Der Code verhindert, dass du Werte Größer 69,99 eingeben kannst. Du musst ihn an deine Bedürfnisse natürlich anpassen.
Private Sub txt_UmgTemp_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    With txt_UmgTemp
        Select Case KeyAscii
            Case 44, 46 'Punkt und Komma
                If .TextLength <> 0 Then 'wenn schon was in der Box steht
                    KeyAscii = 44 'mache immer ein Komma daraus
                    If InStr(1, .Text, ",") <> 0 Then KeyAscii = 0 'aber nur ein Komma zulässig
                Else 'erstes Zeichen kein Komma zulässig
                    KeyAscii = 0
                End If
            Case 48 To 57 'Zahlen von 0 bis 9
                If .TextLength = 0 Then 'erstes Zeichen keine 0 & kein Wert>6
                    If KeyAscii = 48 Or KeyAscii > 54 Then KeyAscii = 0
                ElseIf .TextLength = 2 Then 'nur zwei Vorkommastellen zulässig
                    KeyAscii = 0
                ElseIf .TextLength = 5 Then 'nur zwei Nachkommastellen zulässig
                    KeyAscii = 0
                End If
            Case Else 'alles andere ist unzulässig
                KeyAscii = 0
        End Select
    End With
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Textfeld: IsNumeric und Len
14.07.2005 16:55:21
Dani
Hallo
Probiers mal so:

Private Sub textbox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57 'Ascii
If Len(textbox) > 10 Then KeyAscii = 0 'Anzahl Zeichen
Case Else: KeyAscii = 0
End Select
End Sub

Ob etwas in der TextBox steht kannst du ja mit dem Button prüfen.
if textbox.value = "" then
Gruss dani

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige