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

Mit VBA prüfen, ob Uhrzeit eingetragen ist

Forumthread: Mit VBA prüfen, ob Uhrzeit eingetragen ist

Mit VBA prüfen, ob Uhrzeit eingetragen ist
04.11.2004 08:57:03
Ben
Hallo Leute,
wie kann ich per VBA prüfen, ob in eine Zelle eine Uhrzeit eingetragen worden ist?
Mein Problem ist:
In eine Zelle X sollen beliebige Einträge möglich sein. Trägt der Anwender eine normale Zahl ein (z. B. 333), dann soll mit diesem Eintrag weitergerechnet werden (per definierter Funktion, die in einer anderen Zelle steht). Steht aber in der Zelle X eine Uhrzeit, dann soll mit diesem Wert NICHT weitergerechnet werden.
Das Problem: Excel interpretiert Uhrzeit-Angaben als Zahlen. Und eine VBA-Funktion IsTime gibt es leider nicht (stattdessen nur IsDate).
Um also meine Funktion richtig definieren zu können, muß ich prüfen, ob in der Zelle X eine Uhrzeit steht (die von Excel als Zahl interpretiert wird) - oder aber eine normale Zahl. Aber wie geht das?
Für Hinweise zu diesem Problem wäre ich Euch sehr dankbar.
Herzliche Grüße
Ben.
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit VBA prüfen, ob Uhrzeit eingetragen ist
P@ulchen
Hi Ben,
vielleicht so:
If Range("A1").NumberFormat = "h:mm" Then MsgBox "Uhrzeit"
Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige
AW: Mit VBA prüfen, ob Uhrzeit eingetragen ist
Ulf
If VarType([a1]) = 5 And InStr([a1].Text, ":") &gt 0 Then
MsgBox "Zeitwert!"
End If
Ulf
AW: Mit VBA prüfen, ob Uhrzeit eingetragen ist
04.11.2004 13:37:41
Ben
Hallo Ulf, hallo Paul,
herzlichen Dank für Eure Antworten und Lösungen!
Das hat mir sehr weitergeholfen! Für Euch beide weiterhin alles Gute!
Viele Grüße
Ben.
;
Anzeige
Anzeige

Infobox / Tutorial

Mit VBA prüfen, ob eine Uhrzeit eingetragen ist


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA zu prüfen, ob in einer Zelle eine Uhrzeit eingetragen ist, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste in den Projekt-Explorer und wähle Einfügen > Modul.
  3. Schreibe den folgenden Code in das Modul:

    Function IsTime(cell As Range) As Boolean
       If VarType(cell.Value) = vbDouble Then
           If InStr(cell.Text, ":") > 0 Then
               IsTime = True
           Else
               IsTime = False
           End If
       Else
           IsTime = False
       End If
    End Function
  4. Um die Funktion zu verwenden, gehe zurück zu Excel und gib in eine Zelle ein:

    =IsTime(A1)

    Ersetze A1 durch die Zelle, die Du überprüfen möchtest. Wenn die Zelle eine Uhrzeit enthält, wird WAHR zurückgegeben, andernfalls FALSCH.


Häufige Fehler und Lösungen

  • Fehler: Die Funktion gibt immer FALSCH zurück.

    • Lösung: Stelle sicher, dass die Zelle, die Du überprüfst, tatsächlich eine Uhrzeit enthält und dass die Formatierung korrekt ist.
  • Fehler: Excel interpretiert die Uhrzeit nicht richtig.

    • Lösung: Überprüfe das Zellenformat. Wenn die Zelle nicht im Uhrzeitformat formatiert ist, könnte Excel die Eingabe als Zahl interpretieren.

Alternative Methoden

Eine alternative Methode zur Überprüfung, ob eine Uhrzeit in einer Zelle steht, ist die Verwendung des NumberFormat:

If Range("A1").NumberFormat = "h:mm" Then
    MsgBox "Uhrzeit"
End If

Diese Methode prüft direkt das Format der Zelle und kann nützlich sein, wenn Du mit speziellen Uhrzeitformaten arbeitest.


Praktische Beispiele

  1. Beispiel für die Verwendung der Funktion:

    • Wenn Du in Zelle A1 den Wert 12:30 eingibst und die Formel =IsTime(A1) in Zelle B1 verwendest, erhältst Du WAHR.
  2. Beispiel für die Verwendung des NumberFormat:

    If Range("A1").NumberFormat = "h:mm" Then
       MsgBox "Die Eingabe ist eine Uhrzeit."
    Else
       MsgBox "Die Eingabe ist keine Uhrzeit."
    End If

Tipps für Profis

  • Nutze die IsTime-Funktion in Kombination mit anderen Funktionen, um komplexere Bedingungen zu überprüfen.
  • Behalte im Hinterkopf, dass Excel Zeitwerte intern als Dezimalzahlen speichert. Daher kann es hilfreich sein, zusätzliche Überprüfungen einzuführen, um sicherzustellen, dass die Werte innerhalb eines bestimmten Zeitrahmens liegen.
  • Dokumentiere Deine VBA-Funktionen gut, besonders wenn Du sie in mehreren Projekten verwendest.

FAQ: Häufige Fragen

1. Kann ich die IsTime-Funktion auch für mehrere Zellen verwenden?
Ja, Du kannst die Funktion in einer Schleife für mehrere Zellen aufrufen, um zu überprüfen, ob eine Uhrzeit in einer Liste von Zellen steht.

2. Was mache ich, wenn Excel die Uhrzeit als Zahl anzeigt?
Das liegt daran, dass Excel Zeitwerte als Zahlen interpretiert. Du kannst die Formatierung der Zelle ändern oder die oben genannten VBA-Methoden verwenden, um dies zu überprüfen.

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