Function C_kanladinde(cbYear$, Optional jour As VbDayOfWeek = 2, Optional Erable As Boolean = True) As Date
C_kanladinde = CDate(CStr(IIf(Erable, "15/10/", "29/11/")) & cbYear) - Weekday(CDate(IIf(Erable, "01/10/", "01/11/") & cbYear) - 1, jour)
End Function
Sub test()
MsgBox Format(C_kanladinde(2019), "dddd dd mmmm yyyy") 'Canada
MsgBox Format(C_kanladinde(2019, vbThursday, False), "dddd dd mmmm yyyy") 'US
MsgBox Format(C_kanladinde(2019, 5, 0), "dddd dd mmmm yyyy") 'US
End Sub