Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
948to952
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Inputbox: Zahlenprüfung/ Abbruch zulassen

Inputbox: Zahlenprüfung/ Abbruch zulassen
13.02.2008 11:56:21
Andreas
Hallo Herber Fans,
ich habe heute eine Inputbox in eines meiner Makros gebaut. Ein Beispiel mit Errorhandler, welches die Eingabe einer Zahl erzwingt, fand ich hier im Forum:

Sub InputBoxA()
Dim lValue As Long
On Error GoTo ERRORHANDLER
lValue = InputBox("Bitte eine Ganzzahl eingeben:")
If lValue = False Then Exit Sub
MsgBox lValue
Exit Sub
ERRORHANDLER:
MsgBox "Nur Zahlen erlaubt!"
Resume
End Sub


Das Problem ist, das auch bei Drücken des "Abbrechen" Buttons der Errorhandler anspringt. Ich bekomme es in meinen Versuchen hin, daß ich entweder prüfen kann, ob es eine Zahl ist - wenn nicht, neuer Versuch oder aber das das Abbrechen gut funktioniert. Wenn der User auf abbrechen clickt, soll die Inputbox verschwinden. Aber beides in Kombination bekomme ich nicht hin.
Ich bin nun schon ein bißchen verwirrt, was Inputbox und application.inputbox so alles bewirken können und komme nicht weiter...
Wie schaffe ich die Kombination: Zahl größer 0 erzwingen, den Anwender aber auch rauslassen, wenn er Abbrechen klickt?
Vielen Dank für Eure Mühe.
Grüße, Andreas

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inputbox: Zahlenprüfung/ Abbruch zulassen
13.02.2008 12:36:20
Hajo_Zi
Hallo Andreas,
nur Zahlen bekommt einfacher hin.
‚Inputbox mit Type 1 laesst nur Zahlen als Eingabe zu.
VarPrints = Application.InputBox("Anzahl der Ausdrucke", "Drucken", 0, Type:=1)

AW: Inputbox: Zahlenprüfung/ Abbruch zulassen
13.02.2008 12:50:00
Andreas
Hallo Hajo,
das stimmt. Das gute liegt so nah... jetzt kann ich auch die Syntax in der VBA Hilfe besser deuten. Ich habe die Voreinstellung so geändert, daß eine "1" voreingestellt in der Inputbox erscheint. Aber einige Spaßvögel werden dort auch mal eine 0 eintragen. Wie kann ich das abfangen. Eine Schleife "Do until varPrints größer 0" brachte gerade nicht den gewünschten Erfolg.
Dank und Gruß,
Andreas

Anzeige
AW: Inputbox: Zahlenprüfung/ Abbruch zulassen
13.02.2008 13:20:19
Hajo_Zi
Hallo Andreas,

Sub Andreas()
'Inputbox mit Type 1 laesst nur Zahlen als Eingabe zu.
Dim VarPrints As Long
Do
VarPrints = Application.InputBox("Anzahl der Ausdrucke", "Drucken", 0, Type:=1)
Loop While VarPrints = 0
MsgBox "Test"
End Sub


Gruß Hajo

Du musst dazu aber auch den Defaultwert=1...
13.02.2008 13:34:04
Luc:-?
...wiederherstellen, Andreas!
Dazu ist es günstig, diesen als Konstante zu deklarieren:
Const DefPrints As Long = 1
Außerdem kannst du noch VarPrints als Static deklarieren:
Static VarPrints As Long
Dadurch bleibt der einmal eingegebene Wert erhalten bis die xlSitzung beendet oder ein neuer Wert eingegeben wird.
Im Pgm setzt du dann...
If VarPrints = 0 Then VarPrints = DefPrints
...bevor die InputBox aufgerufen wird...
VarPrints = InputBox("Anzahl der Ausdrucke", "Drucken", VarPrints, Type:=1)
Wenn du das dann in die Schleife stellst und dabei auch den Abbruch berücksichtigst, kann zwar 0 eingegeben wdn, es wird dann aber immer wieder der Defaultwert voreingestellt. Irgendwann wird's dem "Spaßvogel" dann sicher zuviel! ;-)
Den Defaultwert als Konstante zu vereinbaren hat den Vorteil, dass man, wenn man ihn ändern will, das nur an einer Stelle tun muss, die man außerdem auch noch schnell findet, da sie sich am PgmAnfang befindet. Das ist auch grundsätzlich bei allen analogen Fällen zu empfehlen.
Gruß Luc :-?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige