• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

38 uurwerkweek project planbord

Status
Niet open voor verdere reacties.

Gijsdamen

Nieuwe gebruiker
Lid geworden
10 sep 2018
Berichten
1
Goede middag,

Ik ben bezig met het maken van een project planbord met status. Wat de bedoeling is dat we een project in vullen met een start datum en door het invullen van de benodigde tijd gedeeld door aantal personen en dat deze doorloopt tot de einddatum en tijd.
We hebben een 8 uur durende werkdag van 7.30 t/m 16.30 ( incl 1 uur pauze ) en vrijdag werken we maar 6 uur in totaal dus 38uur. Het weekend word er niet gewerkt.
Kan iemand mij helpen aan een formule om de eind datum te krijgen? en eventuele dat tussen deze datums in het plan bord alles een 1 word ipv 0.

Al vast bedankt!

Bekijk bijlage planning gijs.xlsx
 
Ik zou beginnen met alle samengevoegde cellen weg te halen en de zoekfunctie even te gebruiken. Datums en tijden zijn getallen in Excel waarvoor veel functies bestaan om er mee te rekenen. Rammel bij voorkeur niet alles in losse tabjes maar zet het in 1 tabel.
 
Laatst bewerkt:
@Gijs,
Ik weet niet of de vraag nog actueel is, maar ik heb een VBA-functie die de einddatum+tijd berekend met als invoer de startdatum+tijd en een aantal werkuren.
Er wordt rekening gehouden met verschillende starttijden en eindtijden per dag (normaal 8uur en vrijdag 6uur per dag). Je kunt verschillende weekpatronen opgeven in een lijst Werktijden per dag (26 kalenders van A tot Z)
Ook houdt die functie rekening met vakantiedagen dit je in een lijst kunt zetten.
Je moet dus wel met VBA willen werken.
In een ander topic heeft snb een gewone formule gemaakt die hetzelfde berekend, maar dan met start- en eind-tijden die gelijk zijn voor alle werkdagen van de week.

https://www.helpmij.nl/forum/showthread.php/940021-Complexe-formule-naar-VBA/page3?highlight=piet+bom ----->zie bericht: #49

Mijn VBA ziet er als volgt uit:
Code:
Function Calc_FinishDate_INTL5(sta As Double, dur As Double, Kal As String, holidees As Range, SF_flag As String) As Double
  Dim sec_1 As Double, sec_1000ste As Double, dt1 As Double, wd As Integer, sfflg As Integer, OfSet As Long
  Dim du1 As Double, Old_dt1 As Double, i As Long, STime(8) As Double, FTime(8) As Double, ofst As Integer
  If wt_flg <> True Then
    wtpd = Range("Werktijden_pd").Value
    wt_flg = True
  End If
  ofst = (Asc(Kal) - 65 + 1) * 9 - 6  '=(CODE($L25)-65+1)*9-6
  For i = 1 To 7
    STime(i) = wtpd(i + ofst, 1)
    FTime(i) = wtpd(i + ofst, 2)
  Next i
  sec_1 = 1 / 24 / 60 / 60
  sec_1000ste = sec_1 / 1000
  If SF_flag <> "S" And SF_flag <> "F" Then SF_flag = "F"
  sfflg = -1: If SF_flag <> "F" Then sfflg = 1
  If dur = 0 Then  'was 0
    If SF_flag = "S" Then dt1 = Calc_FinishDate_INTL5(sta, sec_1, Kal, holidees, SF_flag) - sec_1: GoTo Uit1
    If SF_flag = "F" Then dt1 = Calc_StartDate_INTL5(sta, sec_1, Kal, holidees, SF_flag) + sec_1: GoTo Uit1
  End If
  If dur < 0 Then dt1 = "FOUT": GoTo Uit1
  sta = Int(sta / sec_1 + 0.5) * sec_1 'afronden op hele seconde
  dur = Int(dur / sec_1 + 0.5) * sec_1 'afronden op hele seconde
  OfSet = 35000
  dt1 = sta
  wd = Weekday(dt1, vbMonday)
  du1 = 0
'------------------------------------------------------stap-1
  If dur = 0 Then GoTo Uit1
'------------------------------------------------------stap0
opnieuw1:
  If dt1 <= Int(dt1) + STime(wd) Then
    dt1 = dt1 - 1
    Do
      dt1 = dt1 + 1: wd = Weekday(dt1, vbMonday)
    Loop Until FTime(wd) > (STime(wd) + sec_1) And holidees(Int(dt1) - OfSet, 1) <> 1
    dt1 = Int(dt1) + STime(wd)
  End If
'------------------------------------------------------stap 1
  wd = Weekday(dt1, vbMonday)
  If dt1 > Int(dt1) + FTime(wd) Or Abs(FTime(wd) - STime(wd)) < sec_1 Or holidees(Int(dt1) - OfSet, 1) = 1 Then
    Do
      dt1 = dt1 + 1: wd = Weekday(dt1, vbMonday)
    Loop Until FTime(wd) > (STime(wd) + sec_1) And holidees(Int(dt1) - OfSet, 1) <> 1
    dt1 = Int(dt1) + STime(wd): wd = Weekday(dt1, vbMonday)
  End If
'------------------------------------------------------stap2
  wd = Weekday(dt1, vbMonday)
  If dt1 >= Int(dt1) + STime(wd) Then
    dt1 = dt1 - 1
    Do
      dt1 = dt1 + 1: wd = Weekday(dt1, vbMonday)
    Loop Until FTime(wd) > (STime(wd) + sec_1) And holidees(Int(dt1) - OfSet, 1) <> 1
    Old_dt1 = dt1
    wd = Weekday(dt1, vbMonday)
    dt1 = Int(dt1) + FTime(wd)
    du1 = du1 + (dt1 - Old_dt1): du1 = Int(du1 / sec_1 + 0.5) * sec_1
    If du1 >= (dur + sfflg * sec_1000ste) Then
      dt1 = dt1 + dur - du1
      GoTo Uit1
    End If
  End If
'------------------------------------------------------stap3
Stap3:
  Do
    dt1 = dt1 + 1: wd = Weekday(dt1, vbMonday)
  Loop Until FTime(wd) > (STime(wd) + sec_1) And holidees(Int(dt1) - OfSet, 1) <> 1
  wd = Weekday(dt1, vbMonday)
  du1 = du1 + FTime(wd) - STime(wd): du1 = Int(du1 / sec_1 + 0.5) * sec_1
  If du1 >= (dur + sfflg * sec_1000ste) Then
    If dt1 > Int(dt1) + FTime(wd) Then dt1 = Int(dt1) + FTime(wd)  'toegevoegd op 12-9-2018
    dt1 = dt1 + dur - du1
    GoTo Uit1
  End If
  GoTo Stap3
Uit1:
  Calc_FinishDate_INTL5 = Int(dt1 / sec_1 + 0.5) * sec_1
End Function
Er zitten veel uren tikwerk en denkwerk in en blijkt voor mij goed te werken.
Als je wilt kan ik hem toepassen op jouw planning.
 
Laatst bewerkt:
@Piet, grappig... ik ben er ook al een paar dagen mee bezig. Het probleem lijkt zo makkelijk, maar kent veel restricties. Elke keer als ik dacht dat ik er was, popte er wel weer een nieuw foutje op. Goed dat jij m hebt weten te kraken.
 
@Ginger,
Ik ben er al weken misschien wel maanden mee bezig en iedere keer ontdek je situaties waar het net niet werkt.
Dit probleem is een van de vele uitdagingen die ik tegenkom bij mijn project "Planning in Excel"
Ik heb al een paar keer gedacht: pak toch een Microsoft Project of een ander professioneel pakket.
Voor mijn werk doe ik dat ook, maar er is kennelijk toch steeds behoefte om die planning even in Excel te doen.
Ik ben benieuwd wat de TS(Gijsdamen) er van vind...…….

P.S. GakaR, is dat nog uit de tijd van worksheet.nl
 
Laatst bewerkt:
P.S. GakaR, is dat nog uit de tijd van worksheet.nl

Yup, onder andere... Mijn nickname is eigenlijk RedHead, maar die was al bezet bij HelpMij. Hier maar iets gekozen wat er dichtbij zit. Bij Oplossing.be kom je me ook nog tegen als RH. ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan