Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
640to644
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
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Problem mit If Variable = "" Then Exit Sub
27.07.2005 08:51:05
Daniel
Hallo VBA-Profis,
ich habe folgendes Problem bei einer Inputbox:
Dim Variable As STRING
Variable = InputBox("Bitte den Wert eingeben:", "Message Box")
If Variable = "" Then Exit Sub
Diese Variante funktioniert einwandfrei - aber bei einer Datumsvariable geht das If Variable = "" Then Exit Sub leider nicht:
Dim Variable As DATE
Variable = InputBox("Bitte den Wert eingeben:", "Message Box")
If Variable = "" Then Exit Sub
Hat jemand eine Idee wie man den gleichen Effekt bei einer Datumsvariablen erreichen kann? Ich möchte halt, dass das Skript abbricht wenn man nichts eingibt bzw. Esc drückt usw.
Danke für eure Antworten im voraus!
Gruß
Daniel

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit If Variable = "" Then Exit Sub
27.07.2005 09:44:02
Erich
Hallo Daniel,
InputBox liefert immer einen String. Wenn du den Wert einer Date-Bariablen zuweist, gibt es einen Fehler, wenn der String nicht in ein Datum umgewandelt werden kann.
Es geht auch kürzer, aber so ist es vielleicht klarer:
Option Explicit
Sub tst()
Dim Ein As String, Dat As Date
Ein = InputBox("Bitte den Wert eingeben:", "Message Box")
On Error Resume Next
Dat = DateValue(Ein)
If Err > 0 Then Exit Sub
On Error GoTo 0
MsgBox "Eingabe: " & Dat
End Sub

Grüße aus Kamp-Lintfort
Erich
AW: Problem mit If Variable = "" Then Exit Sub
27.07.2005 10:20:08
ManhartM
Hallo Daniel
eventuell So!

Sub Dateneingabe()
Dim Datum As String
'Imputbox kann kein Date liefern, da InputBox (so wie verwendest) ebenfalls "" zurückliefern könnte!
Datum = InputBox _
("Datum", "Bitte geben Sie das Datum in die Textbox ein: ")
If Not IsDate(Datum) Then
MsgBox "Datum nicht gültig!", _
vbCritical, "Sie haben ein falsches Datum eingegeben"
Exit Sub
End If
Datum = Format(Datum, "mm/dd/yyyy")
End Sub

Gruss
Manhartm
ist eine Abwandlung von Andy
Anzeige
AW: Problem mit If Variable = "" Then Exit Sub
27.07.2005 10:29:44
Erich
Hallo Daniel,
oder auch so:
Option Explicit
Sub Dateneingabe()
Dim Ein As String, Dat As Date
Ein = InputBox("Datum", "Bitte geben Sie das Datum in die Textbox ein: ")
If Not IsDate(Ein) Then MsgBox "Datum nicht gültig!", vbCritical: Exit Sub
Dat = DateValue(Ein)
MsgBox "Eingabe: " & Dat
End Sub

Dann hast du eine korrekte Eingabe in einer Variablen vom Typ Date.
Grüße aus Kamp-Lintfort
Erich
AW: Problem mit If Variable = "" Then Exit Sub
27.07.2005 10:47:53
Eberhard
Hallo Daniel,
du kannst die Eingabe eines nicht gültigen Datums
mit folgender Abfrage "abfangen":

Sub Datum_Eingabe()
Dim Var1
On Error GoTo errorhandler
Var1 = Application.InputBox("Bitte den Wert eingeben:", _
"Message Box", "27.07.2005")
' 1. wenn Abbruch geklickt wurde:
If Var1 = False Then
Exit Sub
End If
' 2. wenn der String keinem Datum entspricht:
If Not IsDate(Var1) Then
Exit Sub
End If
ActiveCell.Value = Var1
Exit Sub
errorhandler:
MsgBox "Fehler-Nr.: " & Err.Number
End Sub

Gruß Eberhard
Anzeige
AW: Problem mit If Variable = "" Then Exit Sub
27.07.2005 11:46:08
Daniel
Hallo Erich, ManhartM und Eberhard!
Danke für eure Lösungen - die alle prima funktionieren!! :)
Habe mich nun auf die 2. Lösung von Erich festgelegt, da sie schön knapp und trotzdem absolut zweckmäßig ist. Außerdem konnte ich bei dieser Lösung das Datum mit Bindestrichen eingeben (z.b. 25-7-5), was bei einer nachträglichen Umformatierung (mm/dd/yyyy) bei mir Probleme gemacht hat.
Also nochmals danke an alle und noch nen schönen sonnigen Tag!
Beste Grüße
Daniel

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige