korn117
Goto Top

VBA Excel - IsNumeric() erkennt

hallo *,

ich habe ein problem in excel ...

ich überprüfe eingaben bei excel darauf, ob sie eine zahl sind, dies mache ich mit der excel-gott-gegebenen-funktion "isnumeric()".

das problem was ich nun habe ist, dass excel bei dieser funktion auch 1x den buchstaben "e" und "d" erlaubt...

jetzt meine zwei fragen:
warum ist das so (meine vermutung: steht "e" für expotenziell?)
und wie kann man das umgehen (es sollen reine zahlen ohne kommas, ohne "e"'s !!, usw.) erlaubt sein

vielen dank im vorraus!!

gruß

Content-Key: 43005

Url: https://administrator.de/contentid/43005

Printed on: April 19, 2024 at 16:04 o'clock

Mitglied: 8644
8644 Oct 25, 2006 at 12:16:07 (UTC)
Goto Top
Hi,

das kannst du alles umgehen, in dem du die Gültigkeitsprüfung machst.
Menü Extras -> Daten -> Gültigkeit und hier die Parameter festlegen.

Psycho
Member: bastla
bastla Oct 25, 2006 at 13:45:41 (UTC)
Goto Top
Hallo korn117!

Machen wirs halt selbst:

Sub Test()
Dim strTest As String
strTest = InputBox("Testwert?")  
If NurZiffern(strTest) Then
    MsgBox strTest & " ist eine Zahl."  
Else
    MsgBox strTest & " ist keine Zahl."  
End If
End Sub

Function NurZiffern(strZahl As String) As Boolean
Const strErlaubt = "1234567890"  
Dim bolTemp As Boolean, i As Integer
bolTemp = True
If strZahl <> "" Then  
    For i = 1 To Len(strZahl)
        If InStr(strErlaubt, Mid(strZahl, i, 1)) = 0 Then
            bolTemp = False
            Exit For
        End If
    Next
End If
NurZiffern = bolTemp
End Function

HTH
bastla
Member: korn117
korn117 Oct 25, 2006 at 14:01:49 (UTC)
Goto Top
Hallo Psycho,

das geht leider nciht, da das ganze in einer userform stattfindet....

trotzdem danke!


Hallo bastla,

ok, dann mache ich es auf diese weise, vielen dank für das fertige skript!!

ich dachte eigentlich ich wär nur zu doof die hilfe zu bedienen - aber die is*-dinger sind irgendwie komisch - isdate() zum beispiel auch.

der erkennt ein viel zu großes spektrum als datum an - dachte der würde nur dieses eine spezielle datumsformat erkennen, welches in datenbanken immer zum einsatz kommt (weiß nicht wie es heißt sieht CIRCA! so aus: #YYYY/MM/DD#)

nach meiner einschätzung nach sind die is-dinger also fasst unnütz, oder?


aber keiner weiß, nochmal so als nachtrag, was das "e" und "d", welches er in dem isnumeric zulässt eigentlich bedeutet?

vielen dank!!!
Member: bastla
bastla Oct 25, 2006 at 14:55:09 (UTC)
Goto Top
Hallo korn117!

Ein schneller Test bringt auch nur das von Dir vermutete Ergebnis: 1D3 und 1E3 sind Schreibweisen für 10^3 , wobei mir der Unterschied zwischen D und E auch nicht bekannt ist.

Grüße
bastla