تفضل وحدتين نمطيتين واحدة لاول كل شهر والاخرى لبداية سنة جديدة
Public Function YearStart(i As Date) As Date
YearStart = DateSerial(Year(i), 1, 1) - 1
End Function
Public Function MonthStart(i As Date) As Date
MonthStart = DateSerial(Year(i), Month(i) + 1, 1) - 1
End Function