Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
328to332
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
328to332
328to332
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nur ein "-" an erster Stelle?

Nur ein "-" an erster Stelle?
28.10.2003 14:26:29
Micha
Hallo hier in dem Modul will das bei der EIngabe in eine Textbox nur Zahlen zugelassen sind. Also kein Punkt nur ein Komma und keine Buchstaben. Diese Lösung lässt aber mehrere "-" zu soll aber nur an der ersten Stelle eins zulassen. Wie geht das?


Function MyIsNumeric1(strEingabe As String) As String
Dim i As Byte
Dim strHelp As String
Dim bytKomma As Byte
Dim char As String
'*** StrEingabe ist nicht leer, wenn diese Funktion aufgerufen wird!
'*** Hier werden nur Punkte geprüft: für VBA sind Punkte numerisch, aber sie werden in der Excel-Umgebung
'*** als Tauserdertrennpunkt verstanden. Dann wird die Zahl 2.3 als 23 verstanden. daher müssen Punkte bei der Eingabe
'*** nicht akzeptiert werden
For i = 1 To Len(strEingabe)
char = Mid$(strEingabe, i, 1)
If char = "." Then
MsgBox "Die Eingabe von Punkten ist nicht zulässig!"
MyIsNumeric1 = ""
Exit Function
End If
Next
'*** Hier werden nur die Kommas geprüft: Ein Komma für eine reelle Zahl kann akzeptiert werden, aber nur eins!
For i = 1 To Len(strEingabe)
char = Mid$(strEingabe, i, 1)
If char = "," Then bytKomma = bytKomma + 1
If bytKomma > 1 Then    '*** also bei dem zweiten Komma
MsgBox "Die Eingabe von mehr als ein Komma ist nicht zulässig!"
MyIsNumeric1 = ""
Exit Function
End If
Next
'*** Alle andere Zeichen
If Not IsNumeric(strEingabe) And Not strEingabe = "" And Not Left(strEingabe, 1) = "-" Then
MsgBox "Bitte nur Zahlen eingeben!"
For i = 1 To Len(strEingabe)
char = Mid$(strEingabe, i, 1)
'*** Alle Ziffern und ein Komma werden akzeptiert und in einem Hilfstext übertragen
If IsNumeric(char) Or (char = "," And bytKomma = 1) Then strHelp = strHelp & char
Next
'*** Der Hilfstext wird im Eingabefeld   zurückgeschrieben: alle Zeichen außer Ziffern und ein KOmma sind weg!
MyIsNumeric1 = strHelp
Else
'**** Alles Paletti, die Eingabe wird unverändert zurückgegeben
MyIsNumeric1 = strEingabe
End If
End Function

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur ein "-" an erster Stelle?
28.10.2003 14:36:39
andre
hallo micha,

was kommt denn da raus? im letzten teil wird auf isnumeric geprüft, und wenn ---12 noch numerisch ist ???
ansonsten mal den Komma-Part mit - wiederholen:
'*** Hier werden nur die Kommas geprüft: Ein Komma für eine reelle Zahl kann akzeptiert werden, aber nur eins!
For i = 1 To Len(strEingabe)
char = Mid$(strEingabe, i, 1)
If char = "-" Then bytKomma = bytKomma + 1 'hier das minus statt komma
If bytKomma > 1 Then '*** also bei dem zweiten Komma
MsgBox "Die Eingabe von mehr als ein Komma ist nicht zulässig!"
MyIsNumeric1 = ""
Exit Function
End If
Next
Anzeige
AW: Nur ein "-" an erster Stelle?
28.10.2003 14:38:46
Micha
ABer wie mach ich es das das Komma nur an der ersten Stelle stehen darf?
AW: Nur ein "-" an erster Stelle? - Rest
28.10.2003 14:41:20
andre
... ich war noch gar nicht fertig...das minus kann ja auch in der mitte kommen. eventuell fängt das aber auch der letzte prüfpart ab.

'*** Hier werden nur die Kommas geprüft: Ein Komma für eine reelle Zahl kann akzeptiert werden, aber nur eins!
For i = 1 To Len(strEingabe)
char = Mid$(strEingabe, i, 1)
If char = "-" Then bytKomma = bytKomma + 1 'hier das minus statt komma
if bytkomma = 1 and i > 1 then
MsgBox "Das Minus kommt zu spät"
MyIsNumeric1 = ""
Exit Function
End If
If bytKomma > 1 Then '*** also bei dem zweiten Minus
MsgBox "Die Eingabe von mehr als einem Minus ist nicht zulässig!"
MyIsNumeric1 = ""
Exit Function
End If
Next

gruss andre
Anzeige
AW: Nur ein "-" an erster Stelle? - Rest
28.10.2003 14:48:27
Micha
Habs probiert:
wenn ich jetzt -4 eingebe sagt er nach der 4 Minus kommt zu spät.
Passt nich zu 100 % aber ich glaub zu 80%. Weisst du des Rätsels Lösung?
AW: Nur ein "-" an erster Stelle? - Rest
28.10.2003 14:57:07
Micha
Habs selbst rausgefunden muss so heissen:
If bytKomma >= 2 And i > 1 Then
AW: Nur ein "-" an erster Stelle? - Rest
28.10.2003 15:08:36
andre
hallo micha,
hast du auch z.b. -4- oder 4-4 usw. probiert?
gruss andre

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige