bleep-blop
Registered User.
- Local time
- Today, 11:16
- Joined
- Sep 30, 2013
- Messages
- 24
Hi,
Im trying to write some VBA to convert a date into a week number.
After a lot of studying and googling.
My work colleagues do not not what system is used to define the week numbers. So I have gone through all their records (im the new guy) for a few years and deciphered this pattern:
I need the code to define that there are 52 weeks in a year. The last sunday of Dec is the beginning of Week 1 for the following year. Except when it is a leap year where Week 53 exists. otherwise it only goes up to week 52.
Start day for the week is Sunday. End day is the Saturday.
Some examples to check against:
22nd December 2013 = Week 52 2013
29th December 2013 = Week 1 for 2014
----
21st December 2014 = Week 52 for 2014
28th December 2014 = Week 1 for 2015
----
20th December 2015 = Week 52 for 2015
27th December 2015 = Week 1 for 2016
----
25th December 2016 = Week 53 for 2016
1st Jan 2017 = Week 1 for 2017
-----
Any help would be greatly appreciated
Tried various methods already
iso 8601, wrong week start day
intWeek = DatePart("ww", datDate, vbSunday, vbFirstFourDays) Was right for 2013 but wrong for later dates.
Thanks in advance
Im trying to write some VBA to convert a date into a week number.
After a lot of studying and googling.
My work colleagues do not not what system is used to define the week numbers. So I have gone through all their records (im the new guy) for a few years and deciphered this pattern:
I need the code to define that there are 52 weeks in a year. The last sunday of Dec is the beginning of Week 1 for the following year. Except when it is a leap year where Week 53 exists. otherwise it only goes up to week 52.
Start day for the week is Sunday. End day is the Saturday.
Some examples to check against:
22nd December 2013 = Week 52 2013
29th December 2013 = Week 1 for 2014
----
21st December 2014 = Week 52 for 2014
28th December 2014 = Week 1 for 2015
----
20th December 2015 = Week 52 for 2015
27th December 2015 = Week 1 for 2016
----
25th December 2016 = Week 53 for 2016
1st Jan 2017 = Week 1 for 2017
-----
Any help would be greatly appreciated

Tried various methods already
iso 8601, wrong week start day
intWeek = DatePart("ww", datDate, vbSunday, vbFirstFourDays) Was right for 2013 but wrong for later dates.
Thanks in advance
