Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1504to1508
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Je nach aktueller Zeit in Richtige Tabelle springe

Je nach aktueller Zeit in Richtige Tabelle springe
05.08.2016 00:08:39
marco

Hallo Gemeinde,
folgender Code:
Je nachdem, welche Zeit aktuell ist, soll die zugewiesene Tabelle aufgerufen werden. Warum bekomme ich zwischen 22:00 und 06:00 früh immer einen Fehler?
06:00 -- 13:59 = FS
14:00 -- 21:59 = SS
22:00 -- 05:59 = NS
NS funktioniert nicht :(

Private Sub Test_Click()
If Format(Now, "hh:mm") >= "06:00" And Format(Now, "hh:mm") < "14:00" Then
Sheets("FS").Activate
ElseIf Format(Now, "hh:mm") >= "14:00" And Format(Now, "hh:mm") < "22:00" Then
Sheets("SS").Activate
ElseIf Format(Now, "hh:mm") >= "22:00" And Format(Now, "hh:mm") < "06:00" Then
Sheets("NS").Activate
Else: MsgBox "Fehler"
End If
End Sub
Liebe Grüße Marco

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Je nach aktueller Zeit in Richtige Tabelle springe
05.08.2016 00:23:42
Daniel
HI
ganz einfach, weil es unmöglich ist, gleichzeitig grösser als 22 und kleiner als 6 zu sein...
dein Tag teilt sich in 4 Bereiche:
00:00 bis 05:59 : Nachtschicht
06:00 bis 13:59 : Frühschicht
14:00 bis 21:59 : Spätschicht
22:00 bis 23:59 : Nachtschicht
Gruß Daniel
Wenn du mit 3 Schichten = 3 ZeitIntervallen ...
05.08.2016 02:34:29
Luc:-?
…arbeiten willst, Marco,
musst du berücksichtigen, dass ⅔ der Nachtschicht bereits am nächsten Tag liegen und zu derartigen Zeiten sowie dem Nachtschichtende 1 (1 Tag!) addieren.
Die im folgd Fml-Bsp eingesetzte UDF Between (unpublizierbar, weil in ein AddIn integriert!) berücksichtigt solch zyklische Intervalle, deren WendeWert im letzten Argument angegeben wurde (1, weil Zeiten Bruchteile eines Tages sind). Das vorletzte Argument bezieht sich auf die Intervall­Grenzen und bedeutet hier nur Einbeziehung der unteren, während die obere schon zum nächsten Teil­Intervall des Gesamt­Zyklus gehört:
Anzeige
AW: Je nach aktueller Zeit in Richtige Tabelle springe
05.08.2016 08:22:08
Daniel
Hi
Wie ich schon schrieb, ein Wert kann nicht "größer 22" UND "kleiner 6" sein (beide Bedingungen gleichzeitig erfüllt)
Aber ein Wert kann sehr wohl "größer 22" ODER "kleiner 6" sein ( eine der beiden Bedingungen erfüllt)
Ersetze einfach im Bedingungsteil für die Nachtschicht das AND durch OR, dann sollte es funktionieren.
Gruß Daniel
AW: Je nach aktueller Zeit in Richtige Tabelle springe
05.08.2016 09:17:53
marco
Hallo Luc:-? & Daniel,
vielen Dank für eure Antworten. Kling auch logisch, wenn ich das jetzt so betrachte. Ich dachte nur, dass Excel da mit der Zeit etwas anders rechnet, aber im Grund verstecken sich dahinter auch nur einfache Dezimalzahlen.
Deinen Ansatz hab ich soweit verstanden Luc, danke dafür, werde aber die einfachere Methode von Daniel nehmen. Ich hätte ja auch einfach die NS unter Else schreiben können, aber ich wollte die Grunde dafür wissen und das tue ich nun. =)
Gruß Marco
Anzeige
AW: Je nach aktueller Zeit in Richtige Tabelle springe
05.08.2016 09:33:05
Daniel
naja, du machst hier Textvergleiche.
NOW ist ja Datum und Uhrzeit.
ich hätte das wahrscheinlich so programmiert, weil in Excel ein Tag mit 24h dem Wert 1 entspricht und die Nachkommastellen die Uhrzeit bilden.
mit TIME bekommst du die aktuelle Uhrzeit.

Select Case Time
Case Is < 6 / 24: Sheets("NS").Activate
Case Is < 14 / 24: Sheets("FS").Activate
Case Is < 22 / 24: Sheets("SS").Activate
Case Else: Sheets("NS").Activate
End Select
die Doppelprüfung (grösser 6 und kleiner 14 für Frühschicht) kann entfallen, weil sowohl im Select Case wie auch im IF-THEN-ELSEIF nur der erste zutreffende Fall verwendet wird, falls auch noch weitere Fällte zutreffen sollten, werden diese dann nicht mehr ausgeführt, daher reicht bei geschickter Reihenfolge der Bedingungsprüfungen die einfache Prüfung.
Gruß Daniel

Anzeige

19 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige