Inputbox: False vs. 0 ?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox
Bild

Betrifft: Inputbox: False vs. 0 ?
von: Marc
Geschrieben am: 25.09.2003 13:27:27

Hallo zusammen !

Ich verzweifel mal wieder über einem wahrscheinlich trivialen Problem.
Für eine Prozentangabe soll in einer Inputbox eine Angabe zwischen 1 und 100 gemacht werden.
Bei einem Wert <1 oder > 100 wird die Inputbox erneut aufgerufen, beim Klick auf "Abbrechen" abgebrochen.

Der Code dazu:

eingabe = Application.Inputbox("Ihre Eingabe", "Eingabe" , Type:=1)
If eingabe = False Then exit Sub
If Not (eingabe > 0 And eingabe < 101) Then
Do
eingabe = Application.Inputbox("Ihre Eingabe", "Eingabe" , Type:=1)
If eingabe = False Then exit Sub
Loop Until (eingabe > 0 And eingabe < 101)
End If

Mein Problem dabei ist nun, dass eine "0" als Eingabe vom Anwender ebenfalls als "False" interpretiert wird und das Makro aufgrund des "exit sub" aussteigt.
Das möchte ich jedoch verhindern.

Aber wie ?

Ich danke euch mal wieder im Vorraus.

Viele Grüsse,
Marc

Bild


Betrifft: AW: Inputbox: False vs. 0 ?
von: ChrisL
Geschrieben am: 25.09.2003 13:32:22

Hi Marc

Müsste es nicht grösser gleich Null lauten?

eingabe >= 0

Gruss
Chris


Bild


Betrifft: AW: Inputbox: False vs. 0 ?
von: ChrisL
Geschrieben am: 25.09.2003 13:52:00

Hi Marc

Jetzt versteh ich das Problem erst... als Krücke fällt mir ein, die eingabe als String zu deklarieren und dann If eingabe = "Falsch" Then exit sub.

Kannst dann die Datei leider nicht mehr auf einem anders sprachigen Excel verwenden.

Der Vergleich der Werte dann mit Val(eingabe) usw.

Der Hinweis mit dem grösser gleich ist aber trotzdem richtig.

Gruss
Chris


Bild


Betrifft: Danke ! Läuft fast perfekt...
von: Marc
Geschrieben am: 25.09.2003 14:05:52

Hi Chris,

Deine Krücke ist super und das mit dem andersprachigen Excel bekomme ich mit ner "Or"-Abgrage in den Griff !!!

Danke !!!

Jetzt habe ich noch ein kleines Problemchen eher kosmetischer Natur.
Wenn in der Inputbox nichts eingegeben wird, bekomme ich eine Formelfehlermeldung.
Danach läuft das Makro einwandfrei weiter, die Inputbox wird brav erneut ausgeführt.
Kann ich diese Fehlermeldung noch irgendwie unterdrücken ?

Viele Grüsse,
Marc


Bild


Betrifft: AW: Danke ! Läuft fast perfekt...
von: WernerB.
Geschrieben am: 25.09.2003 14:13:33

Hallo Marc,

wie gefällt Dir das:


Option Explicit

Sub Marc()
Dim eing1 As String
Dim eing2 As Byte
    Do
      eing1 = InputBox("Ihre Eingabe:", "Eingabe")
      If Not IsNumeric(eing1) Then Exit Sub
    Loop Until (eing1 >= 0 And eing1 <= 100)
    eing2 = CByte(eing1)
    MsgBox eing2
End Sub

Viel Erfolg wünscht
WernerB.

P.S.: Das Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter (siehe Forums-FAQ).


Bild


Betrifft: Danke ! Jetzt läuft's perfekt...
von: Marc
Geschrieben am: 25.09.2003 14:22:23

Oh Werner,

das ist super !!
Man sieht manchmal den Wald ....

Ich war von der einfachen Inputbox zur Application.Inputbox umgeschwenkt, weil ich das Abbruchproblem nicht in den Griff bekam, aber so läufts mit wesentlich weniger Aufwand perfekt !

Super und Danke !!

Grüsse,
Marc


Bild


Betrifft: AW: Inputbox: False vs. 0 ?
von: WernerB.
Geschrieben am: 25.09.2003 13:32:57

Hallo Marc,

wie wäre es damit:

eingabe >= 0 And eingabe <= 100


Gruß WernerB.


Bild


Betrifft: AW: Inputbox: False vs. 0 ?
von: xXx
Geschrieben am: 25.09.2003 13:33:36

Hallo,
Inputbox liefert beim Klick auf 'Abbrechen' einen Leerstring!
If Eingabe="" then Exit Sub

Gruß aus'm Pott
Udo


Bild


Betrifft: AW: Inputbox: False vs. 0 ?
von: Marc
Geschrieben am: 25.09.2003 13:44:33

Hallo zusammen !

Leider führt mich das nicht weiter.

Beim Klick auf "Abbrechen" wird die Abfrage ob eingabe > 0 ist ja gar nicht mehr ausgeführt.
Wenn eine 0 eingegeben wird führt die Abfrage:
If eingabe = False Then exit Sub
zum Ausstieg aus dem Makro.

Ich habe mir den Wert von eingabe mal in einer MsgBox ausgeben lassen nach Eingabe von 0 und eingabe hat dann den Wert False.

Auch die von Udo angegebene Änderung in
If eingabe = "" Then exit Sub
führt dazu, dass beim Klick auf "Abbrechen" das Makro weiter ausgeführt wird.

Danke für die schnellen ANtworten, aber diese helfenmir nicht so recht weiter, jemand noch ne andere Idee ?

Viele Grüsse,
Marc


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Datumsformat beibehalten"