Avatar billede Bumle Mester
08. juli 2018 - 11:46 Der er 4 kommentarer og
1 løsning

Ændre til arbejdsdøgn

Hej derude,
Har et Excel ark som giver mig lidt grå hår.
Har en masse processer som tager tid, at producere.
Kolonne A indeholder processen, kolonne B indeholder den tid som processen tager og kolonne B er hvornår den ventes færdig.
Lige nu en min formel i kolonne C =nu() + værdien i kolonne B
F.eks C2 =nu() +B2
Så vil den jo returnere tiden nu + den tid som processen varer og hvis tiden nu er 10/7 kl. 8.00 og processen varer 10 timer, så bliver resultatet 10/7 kl. 18.00.
Min udfordring ligger i, at vi kun producerer i 8 timer om dagen, så det rigtige resultat er faktisk 11/7 kl. 9.00, da vi lukker ned hver dag kl. 16.
Kan man på en eller anden måde angive et døgn til, at vare fra-til efter behov?
Alternativt korte et døgn ned til 8 timer?
Jeg kan ikke bare lægge en fast tid til på hver proces, da der kan være mange processer af kortere varighed hver dag.
Så kunne være lækkert, hvis jeg kunne lave en formel eller makro som skifter døgn hver dag kl. 16.

På forhånd tak.
Avatar billede Bumle Mester
08. juli 2018 - 11:47 #1
Rettelse:
Hej derude,
Har et Excel ark som giver mig lidt grå hår.
Har en masse processer som tager tid, at producere.
Kolonne A indeholder processen, kolonne B indeholder den tid som processen tager og kolonne C er hvornår den ventes færdig.
Lige nu en min formel i kolonne C =nu() + værdien i kolonne B
F.eks C2 =nu() +B2
Så vil den jo returnere tiden nu + den tid som processen varer og hvis tiden nu er 10/7 kl. 8.00 og processen varer 10 timer, så bliver resultatet 10/7 kl. 18.00.
Min udfordring ligger i, at vi kun producerer i 8 timer om dagen, så det rigtige resultat er faktisk 11/7 kl. 9.00, da vi lukker ned hver dag kl. 16.
Kan man på en eller anden måde angive et døgn til, at vare fra-til efter behov?
Alternativt korte et døgn ned til 8 timer?
Jeg kan ikke bare lægge en fast tid til på hver proces, da der kan være mange processer af kortere varighed hver dag.
Så kunne være lækkert, hvis jeg kunne lave en formel eller makro som skifter døgn hver dag kl. 16.

På forhånd tak.
Avatar billede jens48 Ekspert
09. juli 2018 - 20:42 #2
Prøv med denne makro, som tester hvor mange rækker der er i kolonne B og lægger sluttidspunktet for hver proces ind i kolonne D.

Sub BeregnSlutTidspunkt()
Dim Start, Slut, LastRow, Addday As Long
LastRow = Range("B65536").End(xlUp).Row
For x = 2 To LastRow
If Now() - Date < 8 / 24 Then
Start = Date + 8 / 24
Else
If Now() - Date >= 16 / 24 Then
Start = Date + 1 + 8 / 24
Else
Start = Now()
End If
End If
Addday = Int(Cells(x, 2) * 3)
If Start - Int(Start) + (Cells(x, 2) - 1 / 3 * Int(Cells(x, 2) / (1 / 3))) > 16 / 24 Then
End If
Slut = Start + Addday + (Cells(x, 2) - 1 / 3 * Int(Cells(x, 2) / (1 / 3)))
If Slut - Int(Slut) > 16 / 24 Then
Slut = Slut + 16 / 24
End If
Cells(x, 4) = Slut
Addday = 0
Next
End Sub
Avatar billede jens48 Ekspert
10. juli 2018 - 17:50 #3
To rettelser, to unødvendige linjer fjernet og nu er der taget hensyn til at nogle processer skal startes senere end nu.

Sub BeregnSlutTidspunkt()
Dim Start, Slut, LastRow, Addday As Long
LastRow = Range("B65536").End(xlUp).Row
For x = 2 To LastRow
If Now() - Date < 8 / 24 Then
Start = Date + 8 / 24
Else
If Now() - Date >= 16 / 24 Then
Start = Date + 1 + 8 / 24
Else
Start = Now()
End If
End If
Addday = Int(Cells(x, 2) * 3)
Slut = Application.Max(Start, Cells(x,3)) + Addday + (Cells(x, 2) - 1 / 3 * Int(Cells(x, 2) / (1 / 3)))
If Slut - Int(Slut) > 16 / 24 Then
Slut = Slut + 16 / 24
End If
Cells(x, 4) = Slut
Addday = 0
Next
End Sub
Avatar billede Bumle Mester
10. juli 2018 - 22:26 #4
Fedt, får lige kigget på den og svarer tilbage.
Avatar billede Bumle Mester
13. juli 2018 - 19:42 #5
Virker ikke helt optimalt ift mit behov, men et ganske udemærket forsøg.
Tak mange gange.
Jeg har lagt en faktor værdi ind i mine tider, så det passer nogenlunde.
God weekend.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester