Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
416to420
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
416to420
416to420
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

zeilen zählen wenn zeit von bis

zeilen zählen wenn zeit von bis
21.04.2004 07:52:34
FPH
Hallo Ihr Lieben,
ich wende mich an heute an Euch da ich ein Problem habe das ich alleine nicht bewältigen kann. Mir raucht die Birne !!
Ich habe eine Datei die über SAP R3 als xls file gespeichert wird.
In dieser Datei habe ich die Daten LS Nr , Erst Dat, erst Zeit, WA Datum, WA zeit. Ich muss nun eine Tägliche Auswertung erstellen die mir sagt wieviel LS gebucht worden sind und wieviele nicht. Allerdings geht die liste über 2 Tage.
Berechungs sollte wie folgt aussehen:
Alle FS die vom vortag nach 14:59:59 Uhr erstllt sind und am nächsten Tag nicht bis 18:00:00 gebucht sind sind "OUT" alle anderen sind "IN".
Kann mir jemand helfen ?? wenn es geht möchte ich das über Auto_open realisieren

danke für Eure hilfe.

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zeilen zählen wenn zeit von bis
21.04.2004 11:03:10
OliveR
Hi FPH????
ein Name wäre mir lieber. Egal.

Sub workbook_open()
Dim mytime
Dim myColumn%, myname$
myColumn = 3 'Bitte die gewünschte Spalte eintragen
myname = "Sheet1" 'Bitte Sheetnamen eingeben
mytime = #3:00:00 PM#
lR = Worksheets(myname).Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lR Step 1
If Cells(i, 1) < Date Then
If Cells(i, 2) < mytime Then
Cells(i, myColumn) = "OUT"
Else
Cells(i, myColumn) = "IN"
End If
ElseIf Cells(i, 1) = Date Then
Cells(i, myColumn) = "IN"
End If
Next i
End Sub

Gruß
Oliver
AW: zeilen zählen wenn zeit von bis
21.04.2004 12:03:44
Fph
Hallo Oliver

soory ersteinmal mein name ist Franz.
Der code sieht gut aus allerdings brauche ich nach eine Erweiterung und zwar wenn die WA Zeit 00:00:00 ist muß ebenfalls out ausgegeben werden.
kannst du mir hierzu auch noch die Erweiterung des Codes schicken
danke Franzel
Anzeige
AW: zeilen zählen wenn zeit von bis
21.04.2004 12:14:06
PliveR
Hi Franz, ;-)
Here we go
Gruß
Oliver

Sub workbook_open()
Dim mytime1, mytime2
Dim myColumn%, myname$
myColumn = 6 'Bitte die gewünschte Spalte eintragen
myname = "Sheet1" 'Bitte Sheetnamen eingeben
mytime1 = #3:00:00 PM#
mytime2 = #12:00:00 AM#
lR = Worksheets(myname).Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lR Step 1
If Cells(i, 2) < Date Then
If Cells(i, 3) < mytime1 Or Cells(i, 5) = mytime2 Then
Cells(i, myColumn) = "OUT"
Else
Cells(i, myColumn) = "IN"
End If
ElseIf Cells(i, 1) = Date Then
Cells(i, myColumn) = "IN"
End If
Next i
End Sub

Anzeige
AW: zeilen zählen wenn zeit von bis
21.04.2004 13:34:30
FPH
Hallo Oliver,
der code funktionert soweit allerdings nicht mit dem Ergebniss wie ich es erwartet habe.
Wenn ich mir das ding so ansehe könntest das recht komplex werden. Ich glaube ich muss aufgeben und alle auswertungen von hand machen. Ich möchte dich ja nicht wochen lang mit meinen Problemen belästigen.
Ach ja damit du auch verstehst warum ich das handtuch werfe hier noch ein paar gründe.
Bei uns werden den ganzen tag über Lieferscheine erstellt, wir müssen alle Lieferungen die am gleichen Tag bis 15:00 Uhr erstllt werden bis1 8:00 Buchen und ausliefern. Alle Lieferscheine die nach 15:00 Uhr erstllt sind gelten dann für den nächsten tag.
Ich wollte über den code erreichen das ich die anzahl der FS angezeigt bekomme die In und die out sind , aber es gibt ha auch noch Wochenenden
Also ein Lieferschein wird Freitag nach 15:00 Uhr erstellt geht aber erst am Montag Raus ???? so nun kennst du mein Problem !!
Anzeige
AW: zeilen zählen wenn zeit von bis
21.04.2004 13:43:03
OliveR
Hallo Franz,
am Besten wäre natürlich, wenn Du Deinen File posten könntest, damit man den Aufbau besser sieht.
Gruß
Oliver
AW: zeilen zählen wenn zeit von bis
21.04.2004 14:09:41
FPH
Hallo Oliver
hier ist die datei wenn du fragen hast kannst du ja mailen ich denke aber das wird nicht einfach!!
AW: zeilen zählen wenn zeit von bis
21.04.2004 19:38:00
fph
Hallo Oliver,
ich bin etwas erschlagen von dem Code da brauche ich einige Zeit für bis ich dahinter
gestiegen bin. Allderings liegst du mit der AUswertung nicht ganz richitg und zwar
wenn ein LF am Freitag nach 15 Uhr erstellt wurde gilt dieser LS erst wieder für
den darauf folgenden Montag
LF Erst DAT Erst Zeit WA Dat WA Zeit
OUT 2001649051 19.04.2004 17:36:42 21.04.2004 09:44:39 Out, da eigentlich der 21.04. WA war
Also dieser LF wurde Fr.nach 15 Uhr erstellt und am Motag 9:44 gebucht also vor
18 Uhr am 21.04. somit ist dieser LF in, wäre der LF am Montag nicht gebucht worden
also WA Zeit 00:00 dann wäre er out so ist er in
ist etwas kompliziert nicht war ??
ich hoffe du kannst mir noch einen weitern anzatz liefern ??
danke vor ab schon einmal.
PS: Hast du eine eigen Homepage ??
gruß franzel
Anzeige
AW: zeilen zählen wenn zeit von bis
22.04.2004 08:47:37
OliveR
Hallo Franz,
ich hatte mich vertan, der 19.04. war ein Montag, somit wurde am 21. einem Mittwoch ausgeliefert. Somit OUT.. oder??
Eine weitere Frage ist, ob der Samstag auch ein freier Tag ist.

Gruß
Oliver
AW: zeilen zählen wenn zeit von bis
22.04.2004 14:19:42
FPH
Hallo Oliver

zu deiner frage Ja ist richtig Montags erstllt mittwoch ausgebucht ist out wenn der DI kein Feiertag war.
Samstag und sonntag sind ebenso wie feiertage zu behandeln da wir nicht am Wochende und an feiertagen arbeiten . Bekommen wir / Du das hin ????

gruß Franzel
AW: zeilen zählen wenn zeit von bis
22.04.2004 14:42:08
OliveR
Hi Franz,
das müsste es jetzt gewesen sein.
Gruß Oliver

Sub workbook_open()
Dim mytime1, mytime2, sh
Dim ERdate As Date, ERtime, WAdate As Date, WAtime
Dim myColumn%, myname$
myColumn = 1 'Bitte die gewünschte Spalte eintragen
myname = "tabelle2" 'Bitte Sheetnamen eingeben
mytime1 = FormatDateTime(#3:00:00 PM#)
mytime2 = FormatDateTime(#12:00:00 AM#)
mytime3 = FormatDateTime(#6:00:00 PM#)
Set sh = Worksheets(myname)
lR = sh.Cells(Rows.Count, 2).End(xlUp).Row
flR = Sheets("Feiertage").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lR Step 1
ERdate = sh.Cells(i, 3)
WAdate = sh.Cells(i, 5)
ERtime = FormatDateTime(sh.Cells(i, 4))
WAtime = FormatDateTime(sh.Cells(i, 6))
fday = ERdate + 1
For j = 1 To flR Step 1
If Left(fday, 5) = Left(Sheets("Feiertage").Cells(j, 1), 5) Then
adday = Sheets("Feiertage").Cells(j, 2) + 1
Exit For
ElseIf Weekday(fday) = 7 Then
adday = 3
Else
adday = 2
End If
Next j
If WAtime = mytime2 Then
sh.Cells(i, myColumn) = "OUT"
ElseIf ERdate <= WAdate Then
If WAdate - ERdate <= adday Then
If WAtime > mytime3 Then
sh.Cells(i, myColumn) = "OUT"
Else
sh.Cells(i, myColumn) = "IN"
End If
ElseIf WAdate - ERdate > adday Then
sh.Cells(i, myColumn) = "OUT"
ElseIf WAdate = Date Then
If WAtime <= mytime3 Then
sh.Cells(i, myColumn) = "IN"
Else
sh.Cells(i, myColumn) = "Out"
End If
End If
End If
Next i
End Sub

Anzeige
AW: zeilen zählen wenn zeit von bis
22.04.2004 15:10:24
OliveR
Hi Franz,
Hier war noch ein Fehler versteckt. adday muss 1 sein.
Gruß Oliver

...
ElseIf Weekday(fday) = 7 Then
adday = 3
Else
adday = 1 'hier 1!!!!
End If
Next j
AW: zeilen zählen wenn zeit von bis
22.04.2004 21:18:37
FPH
Hall Oliver,,
erst mal danke in meiner Testdatei sieht alles gut aus morgen früh
werden iwr dann den Härtetest machen, ich gebe dir bescheid wie das ergebniss
ist. Kann ich ggf. wenn ich probleme habe nochmals auf dich zukommen ??
wie kann ich dich erreichen nur über das Forum ??
danke franzel
AW: zeilen zählen wenn zeit von bis
22.04.2004 21:26:56
FPH
Hall Oliver,,
erst mal danke in meiner Testdatei sieht alles gut aus morgen früh
werden iwr dann den Härtetest machen, ich gebe dir bescheid wie das ergebniss
ist. Kann ich ggf. wenn ich probleme habe nochmals auf dich zukommen ??
wie kann ich dich erreichen nur über das Forum ??
danke franzel
Anzeige
AW:Jetzt aber nichts vergessen...
23.04.2004 10:11:03
OliveR
Hi Franz,
hatte vergessen, dass nach einem Feiertag auch Wochenenden sein können bzw. andersrum.
Gruß
OliveR
Dim mytime1, mytime2, mytime3, sh
Dim ERdate As Date, ERtime, WAdate As Date, WAtime
Dim myColumn%, myname$, fday, lR, flR, adday%, westat%, fstat%

Sub workbook_open()
westat = 0
fstat = 0
myColumn = 1 'Bitte die gewünschte Spalte eintragen
myname = "tabelle2" 'Bitte Sheetnamen eingeben
mytime1 = FormatDateTime(#3:00:00 PM#)
mytime2 = FormatDateTime(#12:00:00 AM#)
mytime3 = FormatDateTime(#6:00:00 PM#)
Set sh = Worksheets(myname)
lR = sh.Cells(Rows.Count, 2).End(xlUp).Row
flR = Sheets("Feiertage").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lR Step 1
adday = 1
ERdate = sh.Cells(i, 3)
WAdate = sh.Cells(i, 5)
ERtime = FormatDateTime(sh.Cells(i, 4))
WAtime = FormatDateTime(sh.Cells(i, 6))
fday = ERdate + 1
proof_feier (fday)
If WAtime = mytime2 Then
sh.Cells(i, myColumn) = "OUT"
ElseIf ERdate <= WAdate Then
If WAdate - ERdate <= adday Then
If WAtime > mytime3 Then
sh.Cells(i, myColumn) = "OUT"
Else
sh.Cells(i, myColumn) = "IN"
End If
ElseIf WAdate - ERdate > adday Then
sh.Cells(i, myColumn) = "OUT"
ElseIf WAdate = Date Then
If WAtime <= mytime3 Then
sh.Cells(i, myColumn) = "IN"
Else
sh.Cells(i, myColumn) = "Out"
End If
End If
End If
Next i
End Sub


Function proof_feier(fday)
For j = 1 To flR Step 1 'prüfe ob Feiertage
If Left(fday, 5) = Left(Sheets("Feiertage").Cells(j, 1), 5) Then
adday = Sheets("Feiertage").Cells(j, 2) + adday
fday = fday + Sheets("Feiertage").Cells(j, 2)
Exit For
End If
Next j
If Weekday(fday) = 7 Then 'prüfe ob Samstag
adday = adday + 2 'addiere zu evtl. Feiertagen
fday = fday + 2
proof_feier (fday)
ElseIf Weekday(fday) = 1 Then 'prüfe ob Sonntag
adday = adday + 1
fday = fday + 1
proof_feier (fday)
Else
adday = adday
End If
End Function

Anzeige
AW: AW:Jetzt aber nichts vergessen...
23.04.2004 10:28:31
FPH
Hallo Oliver,
ich bekomme bei der Funktion bei if weekday(fday) = 7 Then
die fehlermeldung im Debug Laufzeitfehler 17 Typen unverträgöich ????????????
kann den code so nicht probieren hast du eine Idee?
mfg
Fph
AW: AW:Jetzt aber nichts vergessen...
23.04.2004 11:11:11
OliveR
Hi Franz,
bitte diesen Teil oben reinnehmen.
Gruß
OliveR
Dim mytime1, mytime2, mytime3, sh
Dim ERdate As Date, ERtime, WAdate As Date, WAtime
Dim myColumn%, myname$, fday, lR, flR, adday%, westat%, fstat%
AW: AW:Jetzt aber nichts vergessen...
23.04.2004 12:09:15
FPH
Hallo Oliver,
es ist geschaft suppppppppppper geile zick
es geht einfach super vielen dank für deinen Monstercode
danke
franzel
Anzeige
AW: AW:Jetzt aber nichts vergessen...
23.04.2004 10:33:37
fph
Hallo Oli,
nochmals ich die Variable (fday) bringt mir den 19042005 ?? dieses datum ist in meinem Sheet aber nicht voerhanden deshalb läuft die funktion glaube ich auch auf den hammer ?
danke franzel
AW: zeilen zählen wenn zeit von bis
21.04.2004 19:55:14
fph
Hallo Oliver,
ich bin etwas erschlagen von dem Code da brauche ich einige Zeit für bis ich dahinter
gestiegen bin. Allderings liegst du mit der AUswertung nicht ganz richitg und zwar
wenn ein LF am Freitag nach 15 Uhr erstellt wurde gilt dieser LS erst wieder für
den darauf folgenden Montag
LF Erst DAT Erst Zeit WA Dat WA Zeit
OUT 2001649051 19.04.2004 17:36:42 21.04.2004 09:44:39 Out, da eigentlich der 21.04. WA war
Also dieser LF wurde Fr.nach 15 Uhr erstellt und am Motag 9:44 gebucht also vor
18 Uhr am 21.04. somit ist dieser LF in, wäre der LF am Montag nicht gebucht worden
also WA Zeit 00:00 dann wäre er out so ist er in
ist etwas kompliziert nicht war ??
ich hoffe du kannst mir noch einen weitern anzatz liefern ??
danke vor ab schon einmal.
PS: Hast du eine eigen Homepage ??
gruß franzel
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige