جزاك الله خير على الهدية أخونا الفاضل @عبد اللطيف سلوم ، ولمشاركتك فكرة أستاذنا @ابو جودي ( رغم غيابه عنا في الفترة الأخيرة ) .
إلا أني دائماً أتوجه إلى أن تكون بداية الأسبوع عندي يوم السبت وليس الإفتراضي حسب الكمبيوتر يوم الأحد ، فهذا تعديل لا يلمس شيء في هديتك سوى أنه يجعل احتساب الأسبوع يبدأ من يوم السبت لا الأحد .
Private Sub salloum_AfterUpdate()
Me.x1 = Me.salloum.Column(1)
Select Case Me.salloum.Column(0)
Case "1"
Me.n1 = DateSerial(Year(Date), 1, 1)
Me.n2 = DateSerial(Year(Date), 12, 31)
Case "2"
Me.n1 = DateSerial(Year(Date), Month(Date), 1)
Me.n2 = DateSerial(Year(Date), Month(Date) + 1, 0)
Case "3"
Me.n1 = DateAdd("d", -Weekday(Date, vbSaturday) + 1, Date)
Me.n2 = DateAdd("d", 6, Me.n1)
Case "4"
Me.n1 = DateSerial(Year(Date) - 1, 1, 1)
Me.n2 = DateSerial(Year(Date) - 1, 12, 31)
Case "5"
Me.n1 = DateSerial(Year(Date), Month(Date) - 1, 1)
Me.n2 = DateSerial(Year(Date) - 1, 12, 31)
Case "6"
Me.n1 = DateAdd("d", -Weekday(Date, vbSaturday) + 1, Date) - 7
Me.n2 = DateAdd("d", 6, Me.n1)
Case "7"
Me.n1 = Null
Me.n2 = Null
End Select
End Sub