Microsoft Excel

Herbers Excel/VBA-Archiv

Uhzeiten vergleichen und Abweichung zulassen

Betrifft: Uhzeiten vergleichen und Abweichung zulassen von: ela
Geschrieben am: 07.08.2014 13:05:31

Hallo,

ich lasse mir in ein Excel Tabellenblatt mit der Formel =JETZT() das aktuelle Datum inklusive Uhrezit angeben. Dies erscheint dann folgendermaßen in der Zelle.
07.08.2014 12:54

Diesen Zelleninhalt will ich nun mit dem Zelleninhalt aus einer anderen Zelle vergleichen. Diese Zelle wird durch VBA mit folgendem Code befüllt:
Cells(2, 2) = Format(Now, "DD" & "." & "MM" & "." & "YYYY" & " " & "hh" & ":" & "mm")der zelleninhalt erscheint daraufhin in dem selben Format wie in der anderen Zelle.
07.08.2014 12:50

Nun möchte ich den Inhalt der beiden Zellen miteinander vergeleichen und eine Abweichung von ca. 5 Minuten zulassen.
Sprich :
Zelle1 = 07.08.2014 12:54
Zelle2 = 07.08.2014 12:50

Ist diese Abweichung überschritten soll der vergleich false sein. Befinden sich die Uhrzeiten innerhalb diesm Abweichungszeitraum so soll der vergleich true sein.

Hat jemand eine Idee wie man diesen flexiblen vergleich programmieren kann?
Auch so dass z.B. 12:58 und 13:02 noch true wären?

Bin dankbar für eure Hilfe

Liebe Grüße
Ela

  

Betrifft: AW: Uhzeiten vergleichen und Abweichung zulassen von: Hajo_Zi
Geschrieben am: 07.08.2014 13:16:06

Hallo Ella,

das eine ist Text und das andere ein Datum (Zahl)

Tabelle1

 DEF
1407.08.2014 12:5407.08.2014 12:50True

verwendete Formeln
Zelle Formel Bereich N/A
F14=WENN(UND(E14*1+"0:05"*1>=D14;E14*1<D14);"True";"False")  
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 18.12 einschl. 64 Bit



GrußformelHomepage


  

Betrifft: AW: Uhzeiten vergleichen und Abweichung zulassen von: Rudi Maintaire
Geschrieben am: 07.08.2014 13:24:14

Hallo,
1. ergibt Jetzt() eine Zahl und Format(Now,....) einen Text!!!

cells(2,2).Numberformat="DD.MM.YY hh:mm"
cells(2,2)=now

Vergleich mit

If ABS((Cells(2,2)-Cells(2,3))*1440) <= 5 then ....

Übrigens: Cells(2, 2) = Format(Now, "DD.MM.YYYY hh:mm") sieht doch viel besser aus . ;-)

Gruß
Rudi


  

Betrifft: AW: Uhzeiten vergleichen und Abweichung zulassen von: ela
Geschrieben am: 08.08.2014 08:24:54

Hallo Rudi,
super das klappt. habe es einfach so übernommen.
EIne kurze Frage hätte ich aber noch.

Wenn ich die Uhrzeit als long einlese bekomme ich keine Uhrezeit sondern eine Zahl 41596 oder so.
Und wieso nimmst du bei dem Befehl
If ABS((Cells(2,2)-Cells(2,3))*1440)
das Ergebnis *1440 ? hat das was mit irgendeiner Umrechnung zu tun?
Wie wäre es wenn ich statt 5 Minuten nur eine Toleranz von bspw 3Minuten haben möchte?

Vielen Dank

Grüße
Ela


  

Betrifft: AW: Uhzeiten vergleichen und Abweichung zulassen von: Frank
Geschrieben am: 07.08.2014 23:26:02

Hallo,

est ist zwar ein bischen umständlich, geht aber.
Zunächstmal würde ich in einer Zelle die zugelassene Abweichung definieren. Hier 0:05 (mit Uhrzeitformatierung, damit man's besser lesen kann) --> Zelle3
Dann legst Du Dir zwei weitere Zellen an, in der einen addierst Du Deine Toleranz zu Jetzt() --> Zelle4, in der anderen ziehst Du sie ab --> Zelle5.

Jetzt musst Du aus dem Textwert, den der Code einträgt (siehe Beiträge von Hajo_Z und Rudi) wieder einen Zeitwert machen. Praktischerweise heisst die XL-Funtion auch gleich so.
Also =ZEITWERT(Zelle2). Aber da JETZT() nicht nur eine Zeit, sondern auch ein Datum liefert, ZEITWERT aber nicht, müssen wir noch HEUTE() addieren ---> Zelle6

=ZEITWERT(Zelle2)+HEUTE()

Nun kannst Du in Zelle7 Deinen Vergleich eintragen, z.B. so

=WENN(UND(Zelle6 > Zelle5 ; Zelle6 < Zelle4) ;"TRUE" ; "FALSE")

Schöner zu lesen wäre es mit konkreten Zellbezügen, aber Du hattest nun mal so angefangen...

Grüsse,
Frank


  

Betrifft: AW: Uhzeiten vergleichen und Abweichung zulassen von: ela
Geschrieben am: 09.08.2014 13:40:49

Hallo Rudi,
super das klappt. habe es einfach so übernommen.
EIne kurze Frage hätte ich aber noch.

Wenn ich die Uhrzeit als long einlese bekomme ich keine Uhrezeit sondern eine Zahl 41596 oder so.
Und wieso nimmst du bei dem Befehl
If ABS((Cells(2,2)-Cells(2,3))*1440)
das Ergebnis *1440 ? hat das was mit irgendeiner Umrechnung zu tun?
Wie wäre es wenn ich statt 5 Minuten nur eine Toleranz von bspw 3Minuten haben möchte?

Vielen Dank

Grüße
Ela


  

Betrifft: AW: Uhzeiten vergleichen und Abweichung zulassen von: fcs
Geschrieben am: 12.08.2014 00:13:00

Hallo Ela,

Excel verwaltet Datum/Zeitwerte als Dezimalzahlen

Datumswerte beginnen am 1. Januar mit dem Wert 1 und werden dann hoch gezählt.

1 = 24 Stunden = 1 Tag
Uhrzeiten werden als Teil eines Tages dargestellt mit Werten zwischen 0 und und 1.

1440 = 24 * 60 ist der Faktor für die Umrechnung einer Excelzeitangabe in Minuten.

Bei der Deklaration von Variablen denen Zeit/Datumwerte zugewiesen werden solltest du den Type "Date" verwenden. Bei reinen Datumsangabe funktioniert auch "Long" bei Urzeiten musst du alternativ die Variablen als "Double" deklarieren, da ja Dezimalzahlen verarbeitet werden müssen.

Gruß
Franz


 

Beiträge aus den Excel-Beispielen zum Thema "Uhzeiten vergleichen und Abweichung zulassen"