I am trying to construct a function but it seems little complicated. My attempt so far is as under. I have explained what I am trying to achieve. I guess it is only the last part is where I am stuck.
Public Function PNPReturnReqDateTest(strDivision As String, strDevCode As String, dteSiteStart1 As Variant, dteSFStart As Variant, dteBuilderComp As Variant) As Variant
On Error GoTo Err_PNPReturnReqDateTest
'OrderByDateTest: If no relevant dates are available, then return no date;
If IsNull(dteSiteStart1) And IsNull(dteBuilderComp) Then
PNPReturnReqDateTest = Null
'OrderByDateTest: If there is a shopfitting date, then give me a date 182 days less than the shopfitting date.
ElseIf strDivision = "Supermarket" And Not IsNull(dteSFStart) Then
PNPReturnReqDateTest = DateAdd("ww", -182, dteSFStart)
'OrderByDateTest: Where there is no shop fitting date available for a brand new store, give me a date 238 days less than the buildercomp date.
ElseIf strDivision = "Supermarket" And strDevCode Like "*N*" And IsNull(dteSFStart) Then
PNPReturnReqDate = DateAdd("ww", -238, dteBuilderComp)
'OrderByDateTest: If there is no shopfitting date and it is not a new store, then check if the (opening date less 182 days) is less than the sitestart date and if true, sitestart less 182 days otherwise buildercomp less 364 days.
ElseIf strDivision Like "*Supermarket*" And (strDevCode not Like "*N*") Then
PNPReturnReqDate = DateAdd("d", -182, dteBuilderComp) < dteSiteStart1 …...
End If
Exit_PNPReturnReqDateTest:
Exit Function
Err_PNPReturnReqDateTest:
MsgBox "Error " & err.Number & " " & err.Description
Resume Exit_PNPReturnReqDateTest
End Function
Public Function PNPReturnReqDateTest(strDivision As String, strDevCode As String, dteSiteStart1 As Variant, dteSFStart As Variant, dteBuilderComp As Variant) As Variant
On Error GoTo Err_PNPReturnReqDateTest
'OrderByDateTest: If no relevant dates are available, then return no date;
If IsNull(dteSiteStart1) And IsNull(dteBuilderComp) Then
PNPReturnReqDateTest = Null
'OrderByDateTest: If there is a shopfitting date, then give me a date 182 days less than the shopfitting date.
ElseIf strDivision = "Supermarket" And Not IsNull(dteSFStart) Then
PNPReturnReqDateTest = DateAdd("ww", -182, dteSFStart)
'OrderByDateTest: Where there is no shop fitting date available for a brand new store, give me a date 238 days less than the buildercomp date.
ElseIf strDivision = "Supermarket" And strDevCode Like "*N*" And IsNull(dteSFStart) Then
PNPReturnReqDate = DateAdd("ww", -238, dteBuilderComp)
'OrderByDateTest: If there is no shopfitting date and it is not a new store, then check if the (opening date less 182 days) is less than the sitestart date and if true, sitestart less 182 days otherwise buildercomp less 364 days.
ElseIf strDivision Like "*Supermarket*" And (strDevCode not Like "*N*") Then
PNPReturnReqDate = DateAdd("d", -182, dteBuilderComp) < dteSiteStart1 …...
End If
Exit_PNPReturnReqDateTest:
Exit Function
Err_PNPReturnReqDateTest:
MsgBox "Error " & err.Number & " " & err.Description
Resume Exit_PNPReturnReqDateTest
End Function