Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1756to1760
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
Inhaltsverzeichnis

Inputbox Datumeingabe prüfen

Inputbox Datumeingabe prüfen
11.05.2020 18:32:36
Marquardt
Hallo,
ich habe eine Inputbox zur Eingabe eines Startdatums und eine für die Eingabe eines Enddatums.
Wenn kein Datum eingegeben wird soll mit Hinweis über MsgBox wieder zur Eingabe gesprungen werden.
Kann bitte einmal jemand drüber schauen?
Vielen Dank.

Sub Filtern()
Dim vDat1 As Variant
Dim vDat2 As Variant
Dim sTitle As String
Application.ScreenUpdating = False
sTitle = "Objektverwaltung"
ThisWorkbook.Sheets("ME").Visible = True
Sheets("ME").Select
vDat1 = InputBox(prompt:="Ab welchen Datum möchten Sie die Auswertung beginnen?", Title:=sTitle, _
_
Default:=Format(Date - 0, "dd.mm.yyyy"))
If vDat1 = "" Then
Sheets("Start").Select
Exit Sub
End If
vDat1 = CDate(vDat1)
vDat2 = InputBox(prompt:="Bis zu welchem Datum soll die Auswertung erfolgen?", Title:=sTitle,  _
_
Default:=Format(Date + 30, "dd.mm.yyyy"))
If vDat2 = "" Then
Sheets("Start").Select
Exit Sub
End If
vDat2 = CDate(vDat2)
Range("m1").CurrentRegion.AutoFilter field:=13, Criteria1:=">=" & CDbl(vDat1), Operator:= _
xlAnd, Criteria2:="

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inputbox Datumeingabe prüfen
11.05.2020 18:48:04
Martin
Hallo Detlef,
probier es mal so:
Sub Filtern()
Dim vDat1 As Variant
Dim vDat2 As Variant
Dim sTitle As String
Application.ScreenUpdating = False
sTitle = "Objektverwaltung"
ThisWorkbook.Sheets("ME").Visible = True
Sheets("ME").Select
Do
vDat1 = InputBox(prompt:="Ab welchen Datum möchten Sie die Auswertung beginnen?", Title: _
=sTitle, Default:=Format(Date - 0, "dd.mm.yyyy"))
If vDat1 = "" Then
Sheets("Start").Select
Exit Sub
End If
Loop Until IsDate(vDat1)
vDat1 = CDate(vDat1)
Do
vDat2 = InputBox(prompt:="Bis zu welchem Datum soll die Auswertung erfolgen?", Title:= _
sTitle, Default:=Format(Date + 30, "dd.mm.yyyy"))
If vDat2 = "" Then
Sheets("Start").Select
Exit Sub
End If
Loop Until IsDate(vDat2)
vDat2 = CDate(vDat2)
Range("m1").CurrentRegion.AutoFilter field:=13, Criteria1:=">=" & CDbl(vDat1), Operator:= _
xlAnd, Criteria2:="
Viele Grüße
Martin
Anzeige
Kleine Optimierung
11.05.2020 19:05:57
Martin
Hallo Detlef,
ich habe den Code noch etwas optimiert, damit:
1. Noch die von dir gewünschte MsgBox-Meldung erscheint
2. Die Fehlangabe angezeigt wird, damit man ggf. beim Tippfehler nicht alles neu eingeben muss.
Sub Filtern()
Dim vDat1 As Variant
Dim vDat2 As Variant
Dim sTitle As String
Application.ScreenUpdating = False
sTitle = "Objektverwaltung"
ThisWorkbook.Sheets("ME").Visible = True
Sheets("ME").Select
vDat1 = Format(Date - 0, "dd.mm.yyyy")
Do
If Not IsDate(vDat1) Then
MsgBox "'" & vDat1 & "' ist keine gültige Datumsangabe." & String(2, vbCrLf) & " _
Bitte Format 'dd.mm.yyyy' verwenden!", vbExclamation
End If
vDat1 = InputBox(prompt:="Ab welchen Datum möchten Sie die Auswertung beginnen?", Title: _
=sTitle, Default:=vDat1)
If vDat1 = "" Then
Sheets("Start").Select
Exit Sub
End If
Loop Until IsDate(vDat1)
vDat1 = CDate(vDat1)
vDat2 = Format(Date + 30, "dd.mm.yyyy")
Do
If Not IsDate(vDat2) Then
MsgBox "'" & vDat2 & "' ist keine gültige Datumsangabe." & String(2, vbCrLf) & " _
Bitte Format 'dd.mm.yyyy' verwenden!", vbExclamation
End If
vDat2 = InputBox(prompt:="Bis zu welchem Datum soll die Auswertung erfolgen?", Title:= _
sTitle, Default:=vDat2)
If vDat2 = "" Then
Sheets("Start").Select
Exit Sub
End If
Loop Until IsDate(vDat2)
vDat2 = CDate(vDat2)
Range("m1").CurrentRegion.AutoFilter field:=13, Criteria1:=">=" & CDbl(vDat1), Operator:= _
xlAnd, Criteria2:="
Viele Grüße
Martin
Anzeige
AW: Kleine Optimierung
11.05.2020 19:15:06
Marquardt
Hallo Martin,
zeigt mir aber Syntaxfehler an.

vDat1 = InputBox(prompt:="Ab welchen Datum möchten Sie die Auswertung beginnen?",  _
Title: _
=sTitle, Default:=Format(Date - 0, "dd.mm.yyyy"))
Kannst Du noch einmal schauen?
Gruß Detlef
AW: Kleine Optimierung
11.05.2020 19:26:21
Martin
Hallo Detlef,
du hast mein Makro nicht vollständig übernommen. Die von dir zitierte Codezeile existiert in meinem Code so nicht mehr, da ich den Default-Wert als Variable übergebe.
Da der Code bei mir läuft, ist dir vielleicht beim Kopieren ein Fehler unterlaufen?
Viele Grüße
Martin
AW: Kleine Optimierung
11.05.2020 19:39:07
Marquardt
Hallo Martin,
ich habe alles kopiert!

MsgBox "'" & vDat1 & "' ist keine gültige Datumsangabe." & String(2, vbCrLf) & "  _
_
Bitte Format 'dd.mm.yyyy' verwenden!", vbExclamation
Der Syntaxfehler kommt, wenn die MsgBox angezeigt werden soll.
Gruß Detlef
Anzeige
AW: Kleine Optimierung
11.05.2020 19:46:51
Martin
Hallo Detlef,
also die von dir ursprünglich zitierte Zeile war definitiv nicht von mir. Jetzt habe ich die Vermutung, dass die von Herbers Excelforum automatisch gesetzten Zeilenumbrüche Probleme bereiten. Eigentlich handelt es sich dabei um nur eine Zeile:
MsgBox "'" & vDat1 & "' ist keine gültige Datumsangabe." & String(2, vbCrLf) & "Bitte Format 'dd.mm.yyyy' verwenden!", vbExclamation
Nimm mal die Unterstriche "_" heraus.
Viele Grüße
Martin
AW: Kleine Optimierung
11.05.2020 19:57:46
Marquardt
Hallo Martin,
habe ich jetzt auch gemerkt!!
Entschuldige BITTE. Funktioniert jetzt super. Vielen Dank.
Gruß Detlef
Anzeige
AW: Inputbox Datumeingabe prüfen
11.05.2020 18:52:15
onur
So z.B.:
vDat1 = InputBox(prompt:="Ab welchen Datum möchten Sie die Auswertung beginnen?", Title:=sTitle, _
Default:=Format(Date - 0, "dd.mm.yyyy"))
Do While Not IsDate(vDat1)
MsgBox "Bitte ein Datum eingeben !!!"
vDat1 = InputBox(prompt:="Ab welchen Datum möchten Sie die Auswertung beginnen?", Title:= _
sTitle, Default:=Format(Date - 0, "dd.mm.yyyy"))
Loop

AW: Inputbox Datumeingabe prüfen
11.05.2020 19:20:27
Marquardt
Hallo onur,
jetzt kann ich aber nicht mehr Abbrechen in der Abfrage Datum benutzen.
Gruß Detlef
AW: Inputbox Datumeingabe prüfen
11.05.2020 19:29:51
onur
Dann halt
If vdat1 = "" Then Exit Sub

nach den vdat1=.... hinzufügen.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige