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

inputbox mit gültigkeit

inputbox mit gültigkeit
07.10.2005 11:12:05
Claudia
Hallo,
ich habe eine inputbox in VBA erstellt. in diese darf nur ein Datum eingetragen werden. Was muß ich machen, um diese Einschränkung in VBA abzubilden?
Vielen Dank im Voraus
Claudia

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: inputbox mit gültigkeit
07.10.2005 11:29:13
Andreas
Hallo Claudia
folgender Vorschlag
strValue = Inputbox.....
'und dann eine Sicherheitsabfrage:
if IsDate(strValue)= False
Msgbox "falsche Eingabe"
Exit sub
end if
Gruß Andreas
AW: inputbox mit gültigkeit
07.10.2005 11:29:24
OttoH
Hallo Claudia,
vielleicht hilft Dir folgender Code weiter:

Sub test()
Dim a As Variant
a = InputBox("Bitte ein Datum eingeben: ")
If Not IsDate(a) Then
MsgBox ("Kein Datum!")
Else
MsgBox ("Datum ok")
End If
End Sub

Gruß OttoH
AW: inputbox mit gültigkeit
07.10.2005 11:33:02
MichaV
Hallo,
in diesem Fall würde der 36.12.05 als Datum aktzeptiert. Das vermeidest Du mit einer zweiten Abfrage:

Option Explicit
Sub Test()
Dim a As String
Do
a = InputBox("Datum eingeben")
If IsDate(a) Then
If a = CDate(a) Then
MsgBox "das war ein Datum": Exit Do 'Nun ist es auf jeden Fall ein ordentliches Datum.
Else
MsgBox "kein gültiges Datum" 'Kein Datum, weil z.B. 36.12.05
End If
Else
MsgBox "kein gültiges Datum" 'Kein Datum, weil z.B. 36.12.2005 oder Text
End If
Loop While True
End Sub

Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: inputbox mit gültigkeit
07.10.2005 11:46:55
Nepumuk
Hallo Micha,
deine Konstruktion frisst aber auch Uhrzeiten als Datum und 36.12.05 ist bei dir ein gültiges Datum, nämlich der 05.12.1936. Eine genauere Prüfung geht wahrscheinlich nur mit Regex.
Gruß
Nepumuk

ich nehme alles zurück
07.10.2005 11:54:32
MichaV
Hallo Nepumuk,
da hast Du natürlich Recht. Hab ich wohl seinerzeit nicht getestet :o(
Gruß- Micha
guter Tipp!! o.T.
07.10.2005 11:47:02
Franz
besser so
07.10.2005 11:58:30
MichaV
Hallo,
hier die bessere Variante, müsste eigentlich fast alles abfangen.
If Right(a, 2) = Right(CStr(CDate(a)), 2) Then
MsgBox "das war ein Datum": Exit Do 'Nun ist es auf jeden Fall ein ordentliches Datum.
Gruß- Micha
Anzeige
AW: besser so
07.10.2005 12:08:51
Nepumuk
Hi Micha,
und so:
If CDate(a) Like "##.##.####" Then ...
kannst du noch Uhrzeiten ausschließen.
Gruß
Nepumuk

AW: besser so
07.10.2005 12:13:00
MichaV
Hallo Nepumuk,
jetzt hab ich das mit den Uhrzeiten begriffen. Hatte immer 10:31 getestet, aber 10:31:51 ist ja auch eine Uhrzeit ;o)
Danke für den Hinweis.
Gruß- Micha
AW: inputbox mit gültigkeit
07.10.2005 12:25:02
Claudia
Hallo OttoH,
wie kann ich eine schleife einbauen, das nach der Meldung wieder die Inputbox solange erscheint, bis wirklich ein Datum eingegeben wurde, fals sich jemand 2x vertippt oder so?
Gruß
Claudia
AW: inputbox mit gültigkeit
07.10.2005 12:39:26
Nepumuk
Hi,
so:
Public Sub test()
    Dim vntInput As Variant
    Do
        vntInput = InputBox("Datum eingeben", "EIngabe")
        If StrPtr(vntInput) = 0 Then Exit Sub 'abbrechen gedrückt !!!
        If IsDate(vntInput) Then
            If Right(vntInput, 2) = Right(CStr(CDate(vntInput)), 2) Then
                vntInput = CDate(vntInput)
                If vntInput Like "##.##.####" Then Exit Do
            End If
        End If
        MsgBox "Kein Datum", 48, "Hinweis"
    Loop
End Sub

Gruß
Nepumuk

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige