Go Premium for a chance to win a PS4. Enter to Win

x
Solved

VBA Calculate end date when start date and 6 day work weeks are used

Posted on 2016-11-08
Medium Priority
96 Views
I'm having trouble with this one. I'm sure it's simple for the right person but I've been on it for about three hours now. I've been trying to extrapolate by using NetworkDays.INTL but I haven't had any luck. I would prefer to run this completely in VBA  if possible.

I have two variables:

Start Date

Work Days (Qty)

What I need to determine is the end date when the labor days are added to the start date and Saturdays are not included.

So for example, if the job started on Nov 14 th and included 14 work days then the total chronological days would be 16 as per the attached Jpeg.

Thank you for looking at this

0
Question by:Member_2_7966101
• 4
• 3

LVL 54

Expert Comment

ID: 41879848
you can have function NETWORKDAYS.INTL to get the total working days within a period.
``````=NETWORKDAYS.INTL(yourStartDate,yourEndDate,11)
``````

NETWORKDAYS.INTL function
0

Author Comment

ID: 41879865
That's the whole problem, I don't know the end date. That's what I'm trying to determine. I just have the start date and "work" days which don't include Saturdays.
0

LVL 54

Expert Comment

ID: 41879900
so the idea is to generate a list of chronological days or you just want to know the total chronological days?
0

Author Comment

ID: 41879922
the quantity of chronological days is what i'm after
0

LVL 54

Accepted Solution

Ryan Chong earned 2000 total points
ID: 41879937
the quantity of chronological days is what i'm after

sorry can't think for a solution other than using a macro.

you probably can try this:
``````Function getChronologicalDays(StartDate As Date, WorkDays As Integer)
cnt = 0
v = 0
Do While cnt < WorkDays
If Weekday(StartDate + v) <> 7 Then
cnt = cnt + 1
End If
v = v + 1
Loop
getChronologicalDays = v
End Function
``````
then use like:
=getChronologicalDays(StartDate, WorkDays)
28981928.xlsm
0

Author Comment

ID: 41880414
Thanks for that, Ryan. I needed to get this into production this morning. much appreciated
0

Author Closing Comment

ID: 41880415
Works exaclly as I needed it to. Thanks again
0

LVL 34

Expert Comment

ID: 41880608
With formula:

=B6+INT(C6/6)*7+MOD(C6,6)

Where B6 ist start date and C6 is number of working days.  INT(C6/6) gives number of whole working weeks times by 7 gives number of calendar days. MOD(C6,6) gives number of days after whole weeks.

With check if result is Saturday, if so add 1 more day:
=IF(WEEKDAY(B6+INT(C6/6)*7+MOD(C6,6),1)<7,B6+INT(C6/6)*7+MOD(C6,6),B6+INT(C6/6)*7+MOD(C6,6)+1)
0

Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Do you use a spreadsheet like Microsoft's Excel?  Have you ever wanted to link out to a non excel file on your computer or network drive?  This is the way I found to do it!
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
The viewer will learn how to create two correlated normally distributed random variables in Excel, use a normal distribution to simulate the return on different levels of investment in each of the two funds over a period of ten years, and, create a â€¦