Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

vba Variable in Zeit-Bereich

Forumthread: vba Variable in Zeit-Bereich

vba Variable in Zeit-Bereich
09.01.2017 13:48:50
vbAmateur
Hallo,
ich versuche ein Eingabe-Fenster öffnen zu lassen, bei dem der Anwender eine Zeit eingeben kann. Diese soll zwischen 6:00 Uhr und 22:00 Uhr sein, ansonsten soll das Programm eine ungültige Zeiteingabe melden.
Ich glaube ich müsste in der Zeile "Do Until IsDate(zeit)" noch Bedinungen zur Zeit hinzufügen, bin mir aber nicht sicher wie und mit welcher Syntax ich das tun muss.
Vielen Dank schon einmal im Voraus.
MfG vbAmateuer

Sub zeiteingabe()
zeit = InputBox("Anfangsuhrzeit eingeben:" & vbLf & "zwischen 6:00 und 22:00", "Zeiteingabe" _
_
, FormatDateTime(Time, vbShortTime))
Do Until IsDate(zeit)
zeit = InputBox("Eingegebene Zeit ist ungültig!" & vbLf _
& "Bitte Eingabe korrigieren:", , zeit)
Loop
' Eingabe auswerten
If zeit = "" Then
MsgBox "Benutzer hat Zeiteingabe abgebrochen!"
End
Else
MsgBox "Eingegebene Zeit: " & FormatDateTime(Time, vbShortTime)
End If
Range("AA5") = zeit
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba Variable in Zeit-Bereich
09.01.2017 16:16:04
Michael
Hi,
versuch mal das:
Sub zeiteingabe()
Dim zeit As Variant
Dim ok As Boolean, ok2 As Boolean
zeit = FormatDateTime(Time, vbShortTime)
Do Until ok Or zeit = ""
zeit = InputBox("Anfangsuhrzeit eingeben:" & vbLf & _
"zwischen 6:00 und 22:00", "Zeiteingabe", _
zeit)
If IsDate(zeit) Then
If TimeValue(zeit) >= 0.25 Then ok = True Else ok = False: zeit = "06:00"
If TimeValue(zeit) 
Schöne Grüße,
Michael
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA-Zeitvariablen richtig verwenden


Schritt-für-Schritt-Anleitung

  1. Eingabeaufforderung erstellen: Verwende die InputBox, um den Benutzer zur Eingabe einer Zeit zwischen 6:00 und 22:00 Uhr aufzufordern.
  2. Überprüfung der Eingabe: Implementiere eine Schleife, die sicherstellt, dass die Eingabe ein gültiges Datum ist und in dem festgelegten Zeitbereich liegt.
  3. Zeiteingabe speichern: Speichere die gültige Eingabe in einer vba-Variable und gebe eine entsprechende Rückmeldung.

Hier ist ein Beispiel, wie der Code aussehen könnte:

Sub zeiteingabe()
    Dim zeit As Variant
    Dim ok As Boolean
    zeit = FormatDateTime(Time, vbShortTime)

    Do Until ok Or zeit = ""
        zeit = InputBox("Anfangsuhrzeit eingeben:" & vbLf & _
                        "zwischen 6:00 und 22:00", "Zeiteingabe", _
                        zeit)
        If IsDate(zeit) Then
            If TimeValue(zeit) >= TimeValue("06:00") And TimeValue(zeit) <= TimeValue("22:00") Then
                ok = True
            Else
                MsgBox "Zeit muss zwischen 6:00 und 22:00 Uhr liegen!"
            End If
        Else
            MsgBox "Eingegebene Zeit ist ungültig!"
        End If
    Loop

    If zeit = "" Then
        MsgBox "Benutzer hat Zeiteingabe abgebrochen!"
    Else
        MsgBox "Eingegebene Zeit: " & FormatDateTime(zeit, vbShortTime)
    End If

    Range("AA5") = zeit
End Sub

Häufige Fehler und Lösungen

  • Ungültige Zeiteingabe: Wenn der Benutzer eine Zeit außerhalb des erlaubten Bereichs eingibt, solltest Du eine entsprechende Fehlermeldung anzeigen.
  • Fehler bei der Datumsüberprüfung: Stelle sicher, dass die IsDate-Funktion korrekt verwendet wird, um sicherzustellen, dass die Eingabe ein gültiges Datum ist.
  • Variable nicht definiert: Überprüfe, ob Du alle vba-Variablen korrekt deklariert hast, um Laufzeitfehler zu vermeiden.

Alternative Methoden

Anstatt InputBox zu verwenden, könntest Du auch ein benutzerdefiniertes UserForm erstellen, um die Zeiteingabe zu ermöglichen. Mit einem UserForm hast Du mehr Kontrolle über die Eingabe und kannst sofortige Validierungen vornehmen.


Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für die Verwendung von vba-Zeitvariablen:

  1. Arbeitszeiterfassung: Du kannst eine Zeiteingabe verwenden, um Arbeitszeiten zu erfassen und zu berechnen.
  2. Terminplanung: Verwende die Zeitvariable, um Termine in einem definierten Zeitrahmen zu planen.
  3. Erinnerungsfunktion: Erstelle eine Funktion, die den Benutzer zu einer bestimmten Zeit an etwas erinnert.

Tipps für Profis

  • Verwende TimeValue: Um die Zeiteingabe zu prüfen, kannst Du die TimeValue-Funktion nutzen, um die Zeit in ein numerisches Format umzuwandeln, das leichter zu vergleichen ist.
  • Fehlerbehandlung: Implementiere eine robuste Fehlerbehandlung, um das Programm stabiler zu machen.
  • Formatiere die Eingaben: Stelle sicher, dass die Eingaben in einem konsistenten Format angezeigt werden, um Missverständnisse zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Eingabezeit im 24-Stunden-Format anzeigen?
Verwende die FormatDateTime-Funktion und setze den Formatparameter entsprechend.

2. Was passiert, wenn der Benutzer die Eingabe abbricht?
Wenn der Benutzer die Eingabe abbricht (leere Eingabe), kannst Du ein MsgBox-Fenster anzeigen, um dies zu bestätigen.

3. Wie kann ich die Zeiteingabe in einer Zelle speichern?
Du kannst die Zeiteingabe einfach einer Zellreferenz zuweisen, wie im obigen Beispiel in Range("AA5").

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