Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  VBA: IsNumeric auch für negative Zahlen?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  VBA: IsNumeric auch für negative Zahlen? (3946 mal gelesen)
Bernod
Mitglied



Sehen Sie sich das Profil von Bernod an!   Senden Sie eine Private Message an Bernod  Schreiben Sie einen Gästebucheintrag für Bernod

Beiträge: 40
Registriert: 03.03.2010

erstellt am: 12. Mai. 2010 17:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Bernod an!   Senden Sie eine Private Message an Bernod  Schreiben Sie einen Gästebucheintrag für Bernod

Beiträge: 40
Registriert: 03.03.2010

erstellt am: 12. Mai. 2010 17:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Torsten Niemeier an!   Senden Sie eine Private Message an Torsten Niemeier  Schreiben Sie einen Gästebucheintrag für Torsten Niemeier

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernod 10 Unities + Antwort hilfreich

if isnumeric... or (mid(...,1,1)="-" and isnumeric(mid(...,2,len(...))))

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernod
Mitglied



Sehen Sie sich das Profil von Bernod an!   Senden Sie eine Private Message an Bernod  Schreiben Sie einen Gästebucheintrag für Bernod

Beiträge: 40
Registriert: 03.03.2010

erstellt am: 14. Mai. 2010 11:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz