• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 110
  • Last Modified:

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

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


"Work" days vs chronological days
0
Member_2_7966101
Asked:
Member_2_7966101
  • 4
  • 3
1 Solution
 
Ryan ChongCommented:
you can have function NETWORKDAYS.INTL to get the total working days within a period.
=NETWORKDAYS.INTL(yourStartDate,yourEndDate,11)

Open in new window


NETWORKDAYS.INTL function
https://support.office.com/en-ie/article/NETWORKDAYS-INTL-function-a9b26239-4f20-46a1-9ab8-4e925bfd5e28?ui=en-US&rs=en-IE&ad=IE
0
 
Member_2_7966101Author Commented:
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
 
Ryan ChongCommented:
so the idea is to generate a list of chronological days or you just want to know the total chronological days?
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
Member_2_7966101Author Commented:
the quantity of chronological days is what i'm after
0
 
Ryan ChongCommented:
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

Open in new window

then use like:
=getChronologicalDays(StartDate, WorkDays)
28981928.xlsm
0
 
Member_2_7966101Author Commented:
Thanks for that, Ryan. I needed to get this into production this morning. much appreciated
0
 
Member_2_7966101Author Commented:
Works exaclly as I needed it to. Thanks again
0
 
Rob HensonIT & Database AssistantCommented:
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

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now