Hi

Define a dynamic range MinMonth

Refers to: =MIN(Dates!$B$2:$B$366)

In I6,

=DATE(YEAR(MinMonth),MONTH(MinMonth)+MonthNumber-1,1)

In C6,

=IF(DD>DAY(EOMONTH(I6,0)),"",DATE(YEAR(I6),MONTH(I 6),DD))

Also set the Maximum value for Date Spin button to 31.