Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
340to344
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
340to344
340to344
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hilfe! Inputbox-Messagebox

Hilfe! Inputbox-Messagebox
26.11.2003 11:40:23
Helmut
Hallo liebe User,

Nepomuk hat mir gestern mit einem Skriptteil (steht unten) sehr geholfen.
Das Skript läuft auch ganz gut, aber es fehlt etwas Entscheidendes für mich, das ich gestern vergessen habe zu schreiben.
Auch wenn NICHTS (leer) in die Inputbox eingegeben wird, soll die MsgBox aufgehen und mitteilen, dass eine Falscheingabe erfolgt ist!

Machen will ich folgendes:

Ich möchte über eine Inputbox einen Monat eingeben lassen; die Eingabe darf eine Zahl von 1 bis 12 sein.
Wenn das nicht zutrifft, ODER WENN KEINE EINGABE ERFOLGT, dann soll eine Messagebox aufgehen, die die falsche Eingabe mitteilt und fragt, ob die Eingabe fortgesetzt werden soll.
Ist die Antwort JA, dann wird wieder mit der Inputbox begonnen, wenn die Antwort NEIN ist, soll das Macro verlassen werden.
Ist die Eingabe eine Zahl zwischen 1 und 12, soll einfach im Script weitergegangen werden.

Mit dem derzeitigen Script von Nepomuk nimmt VBA die Leereingabe aber an (wie gesagt, habe gestern vergessen diese Bedingung anzuführen!). Wie muß der Script denn nun aussehen, dass auch bei LERREINGABE die MsgBox aufgeht.

Nebenbei:
Ab Eingabe einer 5-stelligen Zahl (bis 4-stellig OK) bekomme ich beim derzeitigen Skript nicht die Falschmeldung der MsgBox sondern eine Fehlermeldung von VBA: "Überlauf"!
Wie kann ich auch dieses Problem beheben, da ich solche Fehler vermeiden möchte!?

Skript von Nepomuk:

Option Explicit
Public

Sub test()
Dim Monat As String
Do
Monat = InputBox("Bitte geben Sie das Monat ein (1-12): z.B. 1 für Jänner")
If Trim(Monat) <> "" Then
If IsNumeric(Monat) Then
Monat = CStr(CInt(Monat))
If CDbl(Monat) >= 1 And CDbl(Monat) <= 12 Then Exit Do
End If
Else
Exit Sub
End If
If MsgBox("Falsche Eingabe! Eingabe wiederholen?", 52, "ACHTUNG!") = vbNo Then Exit Sub
Loop
End Sub



Ich danke euch im Voraus!

Lg, Helmut

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe! Inputbox-Messagebox
26.11.2003 12:20:26
WernerB.
Hallo Helmut,

wie gefällt Dir das:

Sub test()
Dim MonT As String
Dim MonI As Integer
Dim Check As Boolean
Do
Check = False
MonT = InputBox("Bitte geben Sie das Monat ein (1-12): z.B. 1 für Jänner")
If MonT = "" Then Check = True
If Len(MonT) > 2 Then Check = True
If Check = False Then
If IsNumeric(MonT) Then
MonI = CInt(MonT)
If MonI < 1 Or MonI > 12 Then Check = True
Else
Check = True
End If
If Check = False Then Exit Do
End If
If MsgBox("Falsche Eingabe! Eingabe wiederholen?", 52, "ACHTUNG!") = vbNo Then Exit Sub
Loop
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).
Anzeige
AW: Hilfe! Inputbox-Messagebox
26.11.2003 16:24:22
Helmut
Hallo Werner,

ich danke dir recht herzlich!!! Es funktioniert prächtig! Jede "dumme" Eingabe wird ignoriert, und man wird erneut abgefragt!! Das ist genau das, was ich mir vorgestellt habe!

Danke nochmals!!

LG
Helmut

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige