Autor
|
Thema: VBA: IsNumeric auch für negative Zahlen? (3946 mal gelesen)
|
Bernod Mitglied
Beiträge: 40 Registriert: 03.03.2010
|
erstellt am: 12. Mai. 2010 17:25 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe bei mir eine Funktion eingebaut, welche als Eingabe in eine Textbox nur numerische Zeichen erlaubt. Dies realisiere ich derzeit mit der Abfrage "IsNumeric". Mein Problem ist nun, dass diese Funktion keine negativen Werte erlaubt. Ich will jedoch sowohl positive als auch negative Werte zulassen. Wie kann ich das umsetzen? Gruß, Bernod Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernod Mitglied
Beiträge: 40 Registriert: 03.03.2010
|
erstellt am: 12. Mai. 2010 17:59 <-- editieren / zitieren --> Unities abgeben:
Hallo, Problem gelöst... Code: If IsNumeric(meineTextbox.Text) Or Mid(meineTextbox.Text, 1, 1) = "-" Then ' Programmablauf.... Else MsgBox "Fehler" End If
EDIT: Mist .. doch nicht gelöst ... "Or" passt an dieser Stelle nicht, sonst gilt ja nicht mehr die Abfrage nach nummerischen Zahlen ..... [Diese Nachricht wurde von Bernod am 12. Mai. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3543 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 12. Mai. 2010 18:06 <-- editieren / zitieren --> Unities abgeben: Nur für Bernod
|
Bernod Mitglied
Beiträge: 40 Registriert: 03.03.2010
|
erstellt am: 14. Mai. 2010 11:01 <-- editieren / zitieren --> Unities abgeben:
Ich danke Dir! Das sollte eigentlich funktionieren.. tut es aber leider nicht. Ich kann an erster Stelle immernoch kein Minus eingeben. Sonst führt dies zur Fehlermeldung (aus der "Else"-Abfrage). Also eigentlich ist mein Vorhaben ziemlich simpel... Ich habe die erlaubten Zeichen für die Textbox (über KeyPress) auf Zahlen, Komma und Minus eingeschränkt. D.h. der Anwender kann nur diese Zeichen in die Textbox eingeben. Nun möchte ich zusätzlich einschränken, dass der Anwender als erstes Zeichen nur Zahlen oder Minus eingeben kann, und ab dem zweiten Zeichen nur noch Zahlen oder Komma. Ist die "Mid" Funktion hierfür denn die richtige? Edit: okay, ich glaube nun habe ich es endlich:
Code: If CBool(Len(.Text) = 0) Or IsNumeric(.Text) Or _ (Mid(.Text, 1, 1) = "-" And IsNumeric(Mid(.Text, 2, Len(.Text)))) Or _ (Len(.Text) = 1 And Mid(.Text, 1, 1) = "-") Then
Erstmal muss abgesichert werden, dass in dem Feld auch "nichts" drin stehen darf. Dann, die bekannte Abfrage, dass in dem ersten Zeichen ein Minus stehen darf und der Rest numerisch ist. Zusätzlich muss aber erlaubt werden, dass in dem ersten Zeichen ein Minus und in den darauffolgenden Zeichen nichts drin steht. Ansonsten wäre es nicht möglich irgend eine Minuszahl einzugeben, da sofort nach der eingabe des Minus-Zeichens die zweite Abfrage (Minus UND eine Zahl) noch nicht erfüllt ist.Es ist natürlich doof, dass dadurch auch ein "alleinstehendes Minus" erlaubt wird. Aber im moment fällt mir nichts besseres ein. [Diese Nachricht wurde von Bernod am 14. Mai. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|