Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fehler abfangen, wenn keine Eingabe in Inputbox

Fehler abfangen, wenn keine Eingabe in Inputbox
Peter
Guten Tag
Mit nachfolgendem Code wird ein Datum abgefragt. Wenn in der Inputbox nichts eigegeben wird, kommt Laufzeitfehler '13' "Typen unerträglich". Ich möchte jedoch, dass in diesem Fall nicht eine Fehlermeldung kommt, sondern eine Messagebox mit der Mitteilung: "Sie müssen ein Datum eingeben".
Mir ist nicht klar, wie ich den Code erweitern muss.
Danke für jede Hilfe.
Gruss, Peter
Sub Datum_ein
Dim Xdate as Date
If Range("zeDate") = "" or Range("zeDate") = 0 then
Xdate = Application.InputBox("Datum eingeben", "Datum", , , , , 1)
Else
Xdate = Application.InputBox("Datum eingeben", "Datum", Range("zeDate").Text, , , , 1)
Endif
'Wert updaten
If Xdate  Range("zeDate") Then Range("zeDate") = Xdate
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler abfangen, wenn keine Eingabe in Inputbox
27.01.2011 10:18:36
Rudi
Hallo,
als Vorschlag:
Sub Datum_ein()
Dim Xdate
Do While Xdate = 0
If Range("zeDate") = "" Or Range("zeDate") = 0 Then
Xdate = Application.InputBox("Datum eingeben", "Datum", , , , , , 1)
Else
Xdate = Application.InputBox("Datum eingeben", "Datum", Range("zeDate").Text, , , , , 1)
End If
If Xdate = False Then Exit Sub  'Abbruch
If Xdate = 0 Then
MsgBox "Sie müssen ein Datum eingeben!"
End If
Loop
'Wert updaten
Range("zeDate") = Xdate
End Sub

Gruß
Rudi
Anzeige
AW: Fehler abfangen, wenn keine Eingabe in Inputbox
27.01.2011 11:15:18
Peter
Hallo Rudi
Vielen Dank, so funktionierts.
Meines Erachtens kann ich die Schlaufe Do While weglassen; wenn ich nichts eingebe, wird dies als FALSE verstanden und der Makro wird abgebrochen.
Gruss, Peter
Die Schlaufe
27.01.2011 11:23:10
Rudi
Hallo,
ist eine Schleife und dient dazu, die Inputbox so lange anzuzeigen, bis ein Datum eingegeben wird. Es sei denn, es wird Abbrechen angeklickt.
Gruß
Rudi
Anzeige
AW: Die Schlaufe
27.01.2011 11:48:05
Peter
Hallo Rudi
Danke für den Hinweis. ich habe jetzt
Do While XDate = "" 'anstelle von 0 nun ""
...
Loop
geschrieben
und es funktioniert so.
Gruss, Peter
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Fehler abfangen, wenn keine Eingabe in Inputbox


Schritt-für-Schritt-Anleitung

Um den Laufzeitfehler '13' zu verhindern, wenn in der Inputbox keine Eingabe erfolgt, kannst du den folgenden VBA-Code verwenden. Dieser Code zeigt eine Messagebox an, wenn der Benutzer nichts eingibt.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul über Einfügen > Modul.
  3. Füge den folgenden Code in das Modul ein:
Sub Datum_ein()
    Dim Xdate As Variant
    Do
        Xdate = Application.InputBox("Datum eingeben", "Datum", , , , , 1)
        If Xdate = False Then Exit Sub  'Abbruch
        If Xdate = "" Then
            MsgBox "Sie müssen ein Datum eingeben!"
        End If
    Loop While Xdate = ""
    'Wert updaten
    Range("zeDate") = Xdate
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro aus, um das Datum einzugeben.

Häufige Fehler und Lösungen

  • Fehler: Laufzeitfehler '13'

    • Ursache: Dieser Fehler tritt auf, wenn du in der Inputbox keine gültige Eingabe machst.
    • Lösung: Stelle sicher, dass du den Code wie oben beschrieben anpasst, um die Eingabe zu überprüfen.
  • Fehler: Variable nicht definiert

    • Ursache: Wenn die Variable Xdate nicht korrekt deklariert ist.
    • Lösung: Verwende Dim Xdate As Variant, um die Variable richtig zu deklarieren.

Alternative Methoden

Eine alternative Methode zur Eingabe eines Datums könnte die Verwendung von benutzerdefinierten Formularen in Excel sein. Damit kannst du Eingabefelder designen, die spezifische Validierungen erlauben.

  1. Gehe zu Einfügen > UserForm.
  2. Füge Textfelder und Buttons hinzu, um die Eingabe zu steuern.
  3. Verwende VBA zur Validierung wie im obigen Beispiel.

Praktische Beispiele

Ein einfaches Beispiel, um das Datum in die Zelle A1 zu schreiben:

Sub Datum_ein()
    Dim Xdate As Variant
    Do
        Xdate = Application.InputBox("Bitte geben Sie ein Datum ein:", "Datum Eingabe", , , , , 1)
        If Xdate = False Then Exit Sub
        If Xdate = "" Then
            MsgBox "Sie müssen ein Datum eingeben!"
        End If
    Loop While Xdate = ""
    Range("A1").Value = Xdate
End Sub

In diesem Beispiel wird das eingegebene Datum in die Zelle A1 geschrieben.


Tipps für Profis

  • Verwende IsDate(Xdate) zur Validierung der Eingabe, um sicherzustellen, dass der Benutzer tatsächlich ein gültiges Datum eingibt.
  • Nutze Application.OnTime, um die Eingabeaufforderung zu einem späteren Zeitpunkt erneut anzufordern, falls der Benutzer nicht reagiert.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das eingegebene Datum im richtigen Format ist?
Du kannst die Funktion IsDate() verwenden, um zu überprüfen, ob die Eingabe ein gültiges Datum ist.

2. Was passiert, wenn der Benutzer auf "Abbrechen" klickt?
Der Code verwendet If Xdate = False Then Exit Sub, um den Makro abzubrechen, wenn "Abbrechen" gewählt wird.

3. Ist dieser Code für alle Excel-Versionen geeignet?
Ja, der Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige