Anzeige
Archiv - Navigation
164to168
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
164to168
164to168
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

eingabebox mit vornullen

eingabebox mit vornullen
09.10.2002 12:22:32
timo
Hallo!
ich lese über eine eingabebox einen String ein:

Dim stemp$
stemp = Application.InputBox(QUESTION, , , , , , , 1)
If stemp = False Then
Application.StatusBar = ""
Exit Sub
End If

wenn ich jedoch '001' als wert eingebe, hat die variable stemp den wert '1', nicht '001'

wie kann ich diesen fehler beheben?

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: eingabebox mit vornullen
09.10.2002 12:50:08
Udo RiHü
Hallo,

stemp=CStr(inputbox(.....))

Gruss Udo

Re: eingabebox mit vornullen
09.10.2002 12:55:14
Chris
Hallo Timo

Format(stemp, "000")

So bringst du die Zahl dreistellig hin. Problem ist aber, dass dann alle Zahlen dreistellig kommen.

Gruss
Chris

Re: eingabebox mit vornullen
09.10.2002 12:56:18
MAlexander
Moin,

als Fehler würde ich die Rückgabe von 1 nicht bezeichnen, da Du durch den letzten Parameter ausdrücklich eine Zahl zurückgegeben haben willst.
Formuliere wie folgt:
stemp=InputBox(QUESTION)
dann erhälst Du bei Eingabe von 001 auch wirklich "001"

MAlexander

Re: eingabebox mit vornullen
09.10.2002 13:03:15
timo
Danke!

aber ich will ja nur zahlen zulassen, durch die 1 am ende verhindere ich die eingabe von buchstaben.
und "001" ist doch auch eine zahl...

Anzeige
Re: eingabebox mit vornullen
09.10.2002 13:09:57
timo
danke

stemp = CStr(Application.InputBox(QUESTION, , , , , , , 1))
funktioniert zwar, führt aber zum gleichen ergebnis...

die beschränkung auf zahlen soll bleiben( die 1 am ende), jedoch das autom. kürzen soll wegfallen...

Re: eingabebox mit vornullen
09.10.2002 13:18:16
MAlexander
Mir ist nicht bekannt, daß man in einer InputBox irgendetwas formatieren kann.
Aber Du kannst ja im Anschluß der Eingabe mit isNumeric prüfen, ob es sich um eine Zahl handelt oder nicht.

MAlexander

Re: eingabebox mit vornullen
09.10.2002 13:21:16
Chris
Wie wärs mit sowas:

Dim wert As Integer
On Error GoTo errorhandler
stemp = InputBox(QUESTION)
wert = stemp
MsgBox (stemp)
Exit Sub
errorhandler:
MsgBox ("Es wurde keine Zahl eingegeben")

Gruss
Chris

Anzeige
Re: eingabebox mit vornullen
09.10.2002 13:23:49
Chris
Die 'isNumeric' Abfrage wie von Alex vorgeschlagen ist natürlich einiges eleganter.
Re: eingabebox mit vornullen
09.10.2002 13:41:56
timo
Aha!?!?!?

etwa so:

Dim ni%
Dim erg
ni = "0001" 'schon hier hat ni den wert "1", nicht "001"
erg = IsNumeric(ni)

die inputbox formatiert ja auch nicht, es wird nur vom system (excel) geprüft, ob eine zahl eingegeben worden ist oder nicht...

001 ist ein String ! ...
09.10.2002 13:47:50
Volker Croll
Hallo Timo,

zum Verstaendnis: 001 ist definitiv keine(!) Zahl, sondern ein Text.

Wie waer's mit:

stemp_neu = Right(("000" & stemp),3)

Gruss Volker


Re: 001 ist ein String ! ...
09.10.2002 13:54:18
MAlexander
Moin, Volker

Ohne endlose Debatten führen zu wollen gilt für mich:

001 <> "001"

"001" ist definitiv ein String.
001 ist eine mit führenden Nullen formatierte Zahl und mit diesen Zahlen kann man ja auch rechnen, mit Strings jedoch nicht.

Das sollte KEINE Belehrung sein !!

MAlexander

Anzeige
Re: eingabebox mit vornullen
09.10.2002 13:57:10
MAlexander
JA!

Oder auch so:

if IsNumeric(ni) then
' alles paletti
else
' nix da mit der Eingabe - nochmal
endif


MAlexander

Stimmt ...
09.10.2002 14:04:23
Volker Croll
Hallo MAlexander,

Du hast natuerlich recht, ich habe es nicht praezise genug geschrieben.

001 ist nur(!) eine Formatierung, d.h. es wird 001 angezeigt, obwohl der Wert nur die Zahl 1 ist und mit der kann gerechnet werden.

Wenn jedoch die Variable mit "001" gefuellt werden soll (so die Ausgangfrage) ist es definitiv ein String.

Keine Angst, habe es nicht als Belehrung aufgefasst; Dein Hinweis war berechtigt.

Gruss Volker

Hilfe
09.10.2002 14:16:53
timo
hilfe! experten unter sich!
ich versteh nur bahnhof...

ich habe in einem tabellenblatt, das aus einer access-db befüllt wird, den Wert "001" ( datentyp String!)
dieser wert soll verglichen werden mit dem wert aus der inputbox (ebenfalls 001), jedoch ist die variable automatisch '1'

stemp = Application.InputBox(QUESTION, , , , , , , 1)

falls ich dies einmal falsch geschrieben habe, bitte ich um anfängerbonus und entschuldigung ;-)

Anzeige
Re: Hilfe
09.10.2002 14:33:19
MAlexander
Das geht genau so

if (FeldAusAcces = _
format(Application.InputBox(QUESTION, , , , , , , 1),"000") then
msgbox "Alles Bestens"
else
msgbox "Mann-o-Mann"
endif

MAlexander

Re: Hilfe
09.10.2002 14:50:22
timo
Ahhhh!!!!

jetzt verstehe ich...
die führenden nullen fliegen zwar raus, wenn die zahl aber weniger als drei stellen hat, werden diese mit vor-nullen aufgefüllt... ist das richtig so?

danke erstmal...

Re: Hilfe
09.10.2002 15:14:16
MAlexander
Geenauuu !

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige