Anzeige
Archiv - Navigation
680to684
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
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schleifen

Schleifen
11.10.2005 15:12:29
Darren
Wie kann ich eine Schleife Bilden die diesen Code benutzt:
Wenn dblRest größer-gleich 6 Then
dblAnzeige = 14 - (datTime1 * 24)
Zie:
Wenn Zahl gleich-kleiner als 6
dann dblAnzeige = 14 - (datTime1 * 24)
Wenn Zahl größer als 6 und gleich-kleiner als 14
dann dblAnzeige = 22 - (datTime1 * 24)
Wenn Zahl größer als 22 und kleiner als 6
dann dblAnzeige = 6 - (datTime1 * 24)
Es habdelt sich um Uhrzeiten :-)
Wie kann ich diese 3 Absätze zu einen Code kombinieren?
Grüße
Darren

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleifen
11.10.2005 15:45:03
Ralf
Hi Darren,
Du kannst zwar eine oder mehrere Bedingungen beliebig oft in einer Schleife wiederholen lassen, die unterschiedliche Bedingungen müssen dennoch einzeln formuliert werden. Falls es aber tatsächlich nur um den Code für die Bedingungen geht, dann hast Du 2 Möglichkeiten. Select Case oder If. Hier mal ein Beispiel für If:
If Zahl &lt= 6 then
'tu etwas
ElseIf Zahl &lt= 14 then
'tu was anderes
elseIf Zahl &gt 22 then
'tu was absolut neues
Else 'also wenn die Zahl zwar größer als 14 aber kleiner oder gleich 22 ist
'tu noch was anderes
End If
Hinweis: Die 3. Bedingung von Dir (und kleiner 6) würde schon von der 1. abgefangen. Da prüfst Du ja schon ob Zahl kleiner 6 ist. Also &gt 22 und &lt 6 geht nicht. Prüfe nochmal was Du genau prüfen willst.
Ciao, Ralf
Anzeige
AW: Schleifen
11.10.2005 16:11:40
Darren
Hi Ralf,
vielen Dank! Aber es läuft noch nicht - warum? Hier mein Code:
If dblRest kleiner = 6 Then
dblAnzeige = 14 - (datTime1 * 24)
Elself dblRest größer= 14 then
dblAnzeige = 22 - (datTime1 * 24)
Elself dblRest größer= 22 then
dblAnzeige = 14 - (datTime1 * 24)
End If
Grüße
DArren
AW: Schleifen
11.10.2005 16:27:40
Ralf
Hi Darren,
man, Du kannst in der 2. Bedingung nicht fragen, ob der Wert größer als 14 ist und dann in der 3. noch einmal prüfen ob er größer = 22 ist. Da kommt er nie hin, da 22 oder 23 ja schon in der 2. Bedingung abgefangen werden (größer 14). Wenn schon, dann so:
ElseIf dblRest &gt= 14 and dblRest &lt 22
Ciao, Ralf
Anzeige
AW: Schleifen
12.10.2005 08:42:34
Darren
Hi Ralf,
ich muss eein Weg finden um bestimmte Bedingung abzufragen - und zwar Beanspruchung einer Maschine zwischen diese Zeiten - rund um die Uhr!!!:
06-14 Uhr
14-22 Uhr
22-06 Uhr
Ist es jetzt klar, warum ich Frage? Sollte mein Code jetzt anders aussehen?
Grüße Darren
AW: Schleifen
12.10.2005 08:57:07
Darren
Dieser Code habe ich eingefügt:
If dblRest >= 6 And dblRest dblAnzeige = 14 - (datTime1 * 24)
ElseIf dblRest >= 14 And dblRest dblAnzeige = 22 - (datTime1 * 24)
ElseIf dblRest >= 22 And dblRest dblAnzeige = 6 - (datTime1 * 24)
End If
AW: Schleifen
12.10.2005 13:34:09
MichaV
Hallo Darren,
was hältst Du davon?

Select Case dblRest
Case 6 To 14: dblAnzeige = 14 - (datTime1 * 24)
Case 14 To 22: dblAnzeige = 22 - (datTime1 * 24)
Case Else: dblAnzeige = 6 - (datTime1 * 24)
End Select

Gruss- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Schleifen
12.10.2005 15:17:32
Darren
Hi,
das ist eine ganz andere Art des Codes. Aber ich probiere es aus!
Habe noch eine Frage zu der letzen Bedingungen:
Case Else: dblAnzeige = 6 - (datTime1 * 24)
Hier will ich die Zeit einzufangen, die zwischen 22 p.m und 6 a.m anfällt. Auch hier ist der Intervall 8 Stunden (1 Schicht). Wenn z.B. die Maschine um 23 Startet und endet um 6, dann müsste er mir den Wert von 7 geben.
Wie macht man das?
AW: Schleifen
12.10.2005 18:38:46
Ralf
Hi Micha,
vom Ansatz her nicht schlecht gedacht, doch auch hier das gleiche Dilemma. Der 2. Case Zweig wird, wenn dblRest = 14, nie ausgeführt werden, da er ja schon im 1. Zweig abgefangen wurde. Von 14.01 bis 14.59 Uhr gibt es da echt falsche Werte. Da nur der Rest, also die volle Stundenzahl ausgewertet wird, muss anders vorgegangen werden.
1. Noch Hilfsvariablen schaffen für die Übergangszeit zwischen heute und morgen.

Dim dblGestern#, dblHeute#
Select Case dblRest
'von 0.00 bis 5.59 Uhr
case 0 to 5
dblHeute = 6 - (dattime * 24)
' von 6.00 bis 13.59 Uhr
Case 6 to 13
dblAnzeige = 14 - (dattime * 24)
'von 14.00 bis 21.59 Uhr
case 14 to 21
dblAnzeige = 22 - (dattime * 24)
'von 22.00 bis 23.59 Uhr
Case 22 to 23
dblgestern = 24 - (dattime * 24)
End select
if dblHeute "" then dblanzeige = (dblGestern + dblHeute) - (dattime * 24)
So könnte es gehen...
Ciao, Ralf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige