Maybe :
Public Function EffectiveDays(startDate As Date, finishDate As Date, method As Long, Optional rngHoliday)
Dim d1 As Date, d2 As Date, d As Long, i As Long, v As Variant
d1 = Int(startDate): d2 = Int(finishDate)
If d1 > d2 Then: v = d1: d1 = d2: d2 = v
d = DateDiff("d", d1, d2) + 1
Select Case method
Case 2
For i = CLng(d1) To CLng(d2)
If (i Mod 7 = 0) Or (i Mod 7 = 1) Then d = d - 1
Next i
Case 3
For i = CLng(d1) To CLng(d2)
If (i Mod 7 = 1) Then d = d - 1
Next i
End Select
If Not IsMissing(rngHoliday) Then
For Each v In rngHoliday
If IsDate(v) Then
i = Int(v)
If i >= d1 And i <= d2 Then d = d - 1
End If
Next v
End If
EffectiveDays = d
End Function
Bookmarks