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

Inputbox-Messagebox !!!

Inputbox-Messagebox !!!
25.11.2003 21:00:53
Helmut
Hallo liebe Leute,

kann mir bitte mal wieder jemand bei einem kleinen Problem helfen?
Ich möchte über eine Inputbox einen Monat eingeben lassen; die Eingabe darf eine Zahl von 1 bis 12 sein.
Wenn das nicht zutrifft, 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.

Dazu habe ich folgendes geschrieben:

Ask3:

' Monat eingeben

Monat = InputBox("Bitte geben Sie das Monat ein (1-12): z.B. 1 für Jänner")
If Monat <> 1 Or Monat <> 2 Or Monat <> 3 Or Monat <> 4 Or Monat <> 5 Or Monat <> 6 Or Monat <> 7 Or Monat <> 8 Or Monat <> 9 Or Monat <> 10 Or Monat <> 11 Or Monat <> 12 Or Monat = "" Then
If MsgBox("Falsche Eingabe! Eingabe wiederholen?", vbYesNo, "ACHTUNG!") = vbYes Then
GoTo Ask3
Else
Exit Sub
End If
End If

Das funktioniert gut, nur wenn ein richtiges Monat eingegeben wird, dann kommt trotzdem die MsgBox mit „Falsche Eingabe".......usw.!!!
Die Messagebox kommt also bei dieser Syntax bei JEDER Eingabe!!!!!?????
Wenn ich nur einen Monat abfrage (If Monat <> 1 Then), dann funktioniert das aber!?
Ich möchte aber nicht für 12 Monate blockweise abfragen! Da muß es doch was anderes geben?

Frage: Was mache ich hier falsch, und gibt es eine Möglichkeit nicht alle Monate hintereinander anführen zu müssen? Z.B. 1 To 12, oder so ähnlich!?

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inputbox-Messagebox !!!
25.11.2003 21:12:03
Nepumuk
Hallo Helmut,
so z.B.


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



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Anzeige
AW: Inputbox-Messagebox !!!
25.11.2003 21:15:44
K.Rola
Hallo,

HKCU...

worum gehts, wie das DWORD geschrieben wird?

Gruß K.Rola
AW: Inputbox-Messagebox !!!
25.11.2003 21:22:33
Nepumuk
Hi,
genau. Wenn ich es in dezimal schreibe, steht es auch dezimal drin. Nur mit 0x00000002 (2) komm ich nicht weiter.
Gruß
Nepumuk
AW: Inputbox-Messagebox !!!
25.11.2003 21:44:50
K.Rola
Hallo,

den Rest weißt du ja, wenn nicht, melden, dann maile ichs dir.

WSHShell.RegWrite key & "Level", 1, "REG_DWORD"

Gruß K.Rola
AW: Inputbox-Messagebox !!!
25.11.2003 22:12:58
Nepumuk
Hi K.Rola,
soooo einfach wenn frau es weiß. Aber das war nicht mein dringlichstes Problem. Seit neuesten versucht VB.NET meine Firewall zu umgehen und den VSMon auszuschalten. Daraufhin frägt ZoneAlarm ob es sich neu starten darf und Norton meldet ein bösartiges Script in devenv.exe wegen einer FileSystemObject - GetSpecialFolder Anweisung. Das ist doch drei Monate gut gegangen. Warum legt mir winzigweich wieder so eine Zeitbombe ins Nest?
Wenn's so weitergeht, schmeiß ich den Computer weg und kauf mir einen GameBoy.
Herzliche Grüße
Nepumuk
Anzeige
Danke, trotzdem Hilfe!!!
26.11.2003 09:29:34
Helmut
Hallo Nepomuk,

das Script von dir läuft sehr gut, aber es fehlt etwas Entscheidendes für mich, das ich vergessen habe zu schreiben.
Wenn NICHTS (leer) in die Inputbox eingegeben wird, dann soll auch die MsgBox aufgehen und mitteilen, dass eine Falscheingabe erfolgt ist!
Mit dem derzeitigen Script von dir nimmt VBA die Leereingabe aber an. Wie muß der Script aussehen, dass auch bei LERREINGABE die MsgBox aufgeht.
Nebenbei:
Ab Eingabe einer 5-stelligen Zahl (bis 4-stellig OK) bekomme ich 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!?

Ich danke dir im Voraus

Lg, Helmut
Anzeige
AW: Danke, trotzdem Hilfe!!!
26.11.2003 17:27:48
Nepumuk
Hallo Helmut,
dann so:


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(Fix(Monat))
If CDbl(Monat) >= 1 And CDbl(Monat) <= 12 Then Exit Do
End If
End If
If MsgBox("Falsche Eingabe! Eingabe wiederholen?", 52, "ACHTUNG!") = 7 Then Exit Sub
Loop
End Sub



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige