Hej! Hejsan Är det inte bara att köra 'aktuellt veckonr' - 11 ? Här är en funktion som beräknar veckonummer för ett visst datum. Jag tycker den fungerar bra. Den fungerar t ex för 2007-12-31 Men den fungerar inte för 2005-01-01... veckonummer 0 har jag inte hört talas om förr. Edit: Snabbt och fel och slarvig kod ."Variantnissar" skall jagas :-) NextJan1 inte deklarerad mm mm.Vilket veckonr var det för tex 11 veckor sedan?
Har tittat runt en del här på forumet men kan inte riktigt hitta det jag söker.
Jag har aktuellt veckornr. Jag vill ta detta -11 och få ut vilket veckonr det var för 11:a veckor sedan.
Hilfe bitte!
/TjockeSv: Vilket veckonr var det för tex 11 veckor sedan?
Hur får du fram aktuellt veckonummer då ?
/JohanSv: Vilket veckonr var det för tex 11 veckor sedan?
Syftar du på problemet vid årsskiften?Sv: Vilket veckonr var det för tex 11 veckor sedan?
Hej!
Såhär får jag ut aktuellt veckonr:
strWeek = CStr(DatePart("ww", Date))
Jag vill inte ta strWeek = strWeek - 11 p.g.a årskifte och att 2004 har 53 veckor ect ect.
Jag vill göra såhär, typ: DatePart("ww",-11,Date). Men det går juh inte!
Någon som har en guldrad till mig?Sv: Vilket veckonr var det för tex 11 veckor sedan?
mvh Claes
Function weeknumber(aDate)
'// This function returns the week number for a given date. If no date is given, the current date is used.
'// The function uses Norwegian rules for week numbering: Week no 1 is the first week with 4 or more days.
'// Also note that Monday is the first day of the week.
'// The function is testet using english Excel 97.
'// Written by Sverre Beisland, 1999
'// The rule goes like this:
'// 1. Calculate number of days from Jan 1 until today.
'// 2. Divide by 7 to get number of weeks.
'// 3. If first day of year is between monday and thursday, add 1.
'// 4. If dayname of today is "less than" dayname of Jan 1, add 1.
Dim today, jan1, aCount, Weeks
'//' Get the date
If (aDate = "") Then
today = Date
Else
today = aDate
End If
'// Get first day of year
jan1 = DateSerial(Year(today), 1, 1)
NextJan1 = DateSerial(Year(today) + 1, 1, 1)
'// Calculate the number of weeks
Weeks = DateDiff("ww", jan1, today, vbMonday, vbFirstFourDays)
'// Adjust according to weekday
If (Weekday(jan1, vbSunday) < vbFriday) And (Weekday(jan1, vbSunday) <> vbSunday) Then
Weeks = Weeks + 1
End If
If Weeks = 53 Then
If (Weekday(NextJan1, vbSunday) < vbFriday) And (Weekday(NextJan1, vbSunday) <> vbSunday) Then
Weeks = 1
End If
End If
weeknumber = Weeks
End Function
Sv: Vilket veckonr var det för tex 11 veckor sedan?
Sv: Vilket veckonr var det för tex 11 veckor sedan?
Bara för det kommit upp skall jag skriva en universalkod som löser detta en gång för alla.
Jag kommer att köra efter den Gregorinaska kalendern(1699) kruxet är som Ni förstår det här med 4 dagar Torsdag.
Innan 1699 rådde den Julianska kalendern. Sen måste Vi också (som Ni förstår) ta hänsyn till Skottår
Vi tar det efter navigatörberäkningar. Det blir en kort effektiv Funktion som vänder "röven" till MS "bull"