Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1596to1600
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

VBA - Datum von bis aber nur ersten 8h

VBA - Datum von bis aber nur ersten 8h
13.12.2017 22:15:01
bis
Guten Abend alle mit einander,
ich gebe mein Start- und End-Datum in Textfelder ein und lese diese mittels diesem Code aus:
    von = CDate(Sheets("Tabelle1").Shapes("Start_Datum").DrawingObject.Text)
bis = CDate(Sheets("Tabelle1").Shapes("End_Datum").DrawingObject.Text)
Wenn das Startdatum z.B. der 01.12.2017 04:00:00 ist und das Enddatum der 24.12.2017 07:00:00, betrachtet mein Code die komplette Zeit dazwischen. Wenn ich aber an allen Tagen nur die Zeit zwischen 08:00:00 bis 16:00:00 anschauen möchte und das für jeden Tag, wie muss ich denn das machen? Geht das überhaupt?
Gruß Marco

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

Betreff
Datum
Anwender
Anzeige
Hier ein Konstruktionsmakro
13.12.2017 22:45:30
lupo1

Sub AuftragsdauerVonBis() 'Konstruktionsmakro; erfordert xl2007+ wegen WENNFEHLER
Workbooks.Add xlWorksheet: ActiveSheet.Name = "T": [A2:C2] = Split("lfdNr von bis")
w = 10 * 7
[D:G].NumberFormat = "[h]:mm": [F:F].NumberFormat = "MM/DD/YYYY"
[B3] = "12/01/2017 04:00": [C3] = "12/24/2017 07:00"
[B4] = "11/30/2017 11:10": [C4] = "12/05/2017 14:45"
[B5] = "11/27/2017 05:59": [C5] = "12/01/2017 12:31" '1 Feiertag enth.
'Datumsformat muss andersrum (dt. statt engl.) definiert sein bei vorangestelltem Wochentag:
[B:C].NumberFormat = "DDD DD/MM/YYYY hh:mm": Rows("2:" & w + 1).EntireRow.Insert
'Umweg über defN aufgrund des alten Arrayformel-Erstellungslimits 256 Zeichen in VBA:
ActiveWorkbook.Names.Add Name:="WT", RefersToR1C1:= _
Replace("=SUM(IFERROR(EXP(LN(R1C[1]:R#C[1]-" & _
"IFERROR(EXP(LN(R1C[1]:R#C[1]-MOD(RC3-TRUNC(TRUNC(RC2)/7)*7,#))),)-R1C:R#C-" & _
"IFERROR(EXP(LN(MOD(RC2-TRUNC(TRUNC(RC2)/7)*7,#)-R1C:R#C)),))),))", "#", w)
ActiveWorkbook.Names.Add Name:="FT", RefersToR1C1:= _
"=SUM((ROW(INDIRECT(TRUNC(RC2)&"":""&TRUNC(RC3)))" & _
"=TRANSPOSE(R1C6:R14C6))*TRANSPOSE(R1C7:R14C7))"
[D1] = "56:": Range("D2:D" & w) = "=R[-1]C+1"
'Ohne explizites ".FormulaR1C1" muss im xl12-Modell "+R[0]C4" statt "+RC4" referenziert werden:
Range("E1:E" & w) = "=LOOKUP(MOD(ROW()+1,7),{0,2},{0,8})/24+R[0]C4"
'Fr 24.11. und Mo 27.11. sind demonstrationshalber FT, so dass aus 30:05 nur 13:35 Std werden:
[F1] = "1/1/17": [F2] = "5/1/17": [F3] = "10/3/17": [F4] = "11/24/17": [F5] = "11/27/17"
[G1:G10] = "=INDEX(R1C[-2]:R7C[-2],MOD(RC[-1]-2,7)+1)-INDEX(R1C[-3]:R7C[-3],MOD(RC[-1]-2,7)+1)"
Range("2:" & w - 2).EntireRow.Hidden = True: [B:G].Columns.AutoFit
'Select wegen FreezePanes. Außerdem: Keine Arrayformel nötig, da defN diese automatisch  _
erstellen:
Range("D" & w + 3).Select: ActiveWindow.FreezePanes = True: Selection.Resize(3, 1) = "=WT-FT"
End Sub
E1[:E70]: =VERWEIS(REST(ZEILE()+1;7);{0.2};{0.8})/24+$D1 wird für Sa und So mit ebenfalls 8 statt 0 Stunden zu
E1[:E70]: =VERWEIS(REST(ZEILE()+1;7);{0.2};{8.8})/24+$D1
Ab F1 stehen noch manuell Feiertage, falls welche in den Bereich fallen und zu berücksichtigen sind.
Anzeige
AW: VBA - Datum von bis aber nur ersten 8h
13.12.2017 23:25:39
bis
Mehr brauchst du nicht:
zeit = zeit - Int(zeit)' zeit ist das Datum mit Uhrzeit, das du überprüfen willst
If zeit >= 0.33333333 And zeit 

AW: VBA - Datum von bis aber nur ersten 8h
13.12.2017 23:32:55
bis
Danke euch beiden ich probiere beides aus.
AW: VBA - Datum von bis aber nur ersten 8h
14.12.2017 05:35:12
bis
Warum offen? Soll jemand vorbei kommen und Dir beim probieren Helfen?

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
Danke hat super funktioniert.
19.12.2017 02:06:11
Marco
Danke Onur und Lupo für eure Hilfe hat super funktioniert.

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige