Funktion ISTUHR()
#1
Hallo zusammen

Ich habe vor einiger Zeit im Internet die Funktion ISTDATUM() gefunden und sie hat mir schon oft geholfen. Wenn z.B. in A5 ein Datum steht, so liefert mir die Funktion =ISTZAHL(A5) in B5 ein WAHR.
Der Code dafür lautet:
Public Function ISTDATUM(Zelle) As Boolean
   ISTDATUM = False
   If IsDate(Zelle) Then ISTDATUM = True
End Function

Nun bräuchte ich dringend eine Funktion für die Uhrzeit. Ich habe es mit folendem Code probiert aber leider ohne Erfolg.
Public Function ISTUHR(Zelle) As Boolean
   ISTUHR = False
   If IsTime(Zelle) Then ISTUHR = True
End Function

Hat jemand eine Idee wie der Code für die Funktion lauten müsste?
MfG Peter

WIN 11  /  MS 365
Antworten Top
#2
Hallo Peter,

eine Möglichkeit:

.xlsm   ISTUHRZEIT.xlsm (Größe: 14,47 KB / Downloads: 12)
In meinem Beispiel, wird in der UDF geprüft ob ein Doppelpunkt enthalten ist und ob der Zeitwert in der Zelle nicht größer als 1 ist. 
Falls du damit Zeitsummen prüfen willst, muss die Prüfung <=1 entfallen.

Gruß Uwe
Antworten Top
#3
Hallo Uwe

Vielen Dank für Deine Hilfe.  Die Funktion wird nur zur Prüfung, ob in der Zelle eine Uhrzeit steht, benötigt.
MfG Peter

WIN 11  /  MS 365
Antworten Top
#4
oder vielleicht als Formel:
=WENN(WENNFEHLER(ZEIT(STUNDE(A1);MINUTE(A1);SEKUNDE(A1));FALSCH);WAHR;FALSCH)

Je nach Bedarf.

Knobbi38
Antworten Top
#5
Funktion LAMBDA - Microsoft-Support

Mit O365 kann man Knobbi38s Formel als benutzerdefinierte Funktion hinterlegen, z. B. unter dem Namen IstGueltigeZeit. 

Die LAMBDA lautet:
LAMBDA(t; WENN(WENNFEHLER(ZEIT(STUNDE(t); MINUTE(t); SEKUNDE(t)); FALSCH); WAHR; FALSCH))

In Excel ruft man die Funktion dann sauber auf mit: =IstGueltigeZeit(A1)
Antworten Top
#6
Hallo,

vielleicht auch so:

=WENNFEHLER(REST(A1;1)<>0;FALSCH)


Gruß, Uwe
Antworten Top
#7
Hallo DeltaX

Vielen vielen Dank für Deine LAMBDA Lösung.
Bisher hatte ich mit LAMBDA nichts am Hut aber durch Deinen Tipp bin ich voll auf den Geschmack gekommen. Ich verwende auch lieberkeine VBA Formeln. Die Datumskontrolle habe ich nun auch gleich auf LAMBDA umgestellt und werde wohl noch einige andere Formelnumstellen.
MfG Peter

WIN 11  /  MS 365
Antworten Top
#8
Hallo,

eine gültige Uhrzeit ist m. E. eine Zeit von 00:00:00 bis 23:59:59.
Die Lösungen von DeltaX und Kuwer lassen aber auch 26:51:00, etc. als gültig zu. Dafür wird 00:00:00 als falsch ausgeben. Ist das für dich ok?

Gruß Sigi
Antworten Top
#9
Moin!
Auch von mir noch etwas Senf!
Eine Uhrzeit ist eine Dezimalzahl >= 0 und < 1
Die für mich entscheidende Frage ist folglich, ob Du prüfen willst, ob ein Zellinhalt aussieht, als wäre es eine Zeit (Text-Problem) oder ob eine als Zeit interpretierbare Dezimalzahl <1 im richtigen Zahlenformat dargestellt wird.
Erst wenn Du diese Frage beantwortest, kann überhaupt eine vernünftige Antwort gegeben werden.

Schließlich ist die Zahl 0,123456789 eine gültige Uhrzeit, nämlich
B
1702:57:46,667

ZelleFormatWert
B17hh:m:ss,0000,123456789

Two Cents,
Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#10
Hallo Uwe

Nochmals ein Danke an Dich. Angetan von dem LAMBDA habe ich Deine Formel da reingepackt.

Hallo Sigi

Danke für Deinen Hinweis. Ich habe soeben getestet ob die Formel bei 30:26 ebenfalls WAHR liefert und die Antwort ist Ja. Das ist für meine Anwendung gut denn ein Handball Torergebnis ist so gut wie immer über 24 (z.B. 28:30). Durch diese Formel ist somit beides für meine Anwendung abgedeckt.
MfG Peter

WIN 11  /  MS 365
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste