Compute all period Dates as Date
I like to use CDate(Format(...) to compute the first 2 dates
This is an algorithm, not Code. Assumes SecondPeriod is still in this year
FirstMonth = Month(Date)
SecondMonth = FirstMonth
FirstYear = Year(Date)
SecondYear = FirstYear
If Day(Date) < 15 then
FirstDay = 1
SecondDay = 15
Else
FirstDay = 15
SecondDay = 1
SecondMonth = FirstMonth + 1 + 1
FirstPeriod = CDate(Format(FirstMonth & "/" & FirstDay & "/" & FirstYear, "mm/dd/yy"))
SecondPeriod = CDate(Format(SecondMonth & "/" & SecondDay & "/" & SecondYear, "mm/dd/yy"))
)
Now use a Counter, a Loop, and DateAdd a month to each period. DateAdd returns a Date, Format Date as desired.
3rdPeriod = Format(DateAdd("m", Counter/Looper, Period), "mm/dd/yy") Etc