Function finddato(ugenr, aar) ugedag = 1 dato = ugedag & "-01-" & aar dag1 = datepart("ww", dato, vbMonday, vbFirstFourDays) while dag1 <> 1 ugedag = ugedag + 1 dato = ugedag & "-01-" & aar dag1 = datepart("ww", dato, vbMonday, vbFirstFourDays) wend dato = clng(ugedag) & "-01-" & aar dato = DateAdd("d", 7*(ugenr-1), dato) finddato = dato end function
Som fungerer fint til og med 2007 datoer. Så snart man når ind i 2008, f.eks. med finddato(4, 2008) så går der kage i datoen. Datoen afviger med 1 dag fra den rigtige...i 2009 udregner den 3 dage forkert.
Function finddato(ugenr, aar) ugedag = 1 select case aar case 2008 ugedag = 2 case 2009 ugedag = 3 'osv end select ' en programmør flipper dog over den måde, men jeg er doven lige nu
dato = ugedag & "-01-" & aar dag1 = datepart("ww", dato, vbMonday, vbFirstFourDays) while dag1 <> 1 ugedag = ugedag + 1 dato = ugedag & "-01-" & aar dag1 = datepart("ww", dato, vbMonday, vbFirstFourDays) wend dato = clng(ugedag) & "-01-" & aar dato = DateAdd("d", 7*(ugenr-1), dato) finddato = dato end function
heheh, ja den metode ville jeg ikke foretrække. Mener at ha læst at der er en fejl i en eller anden Microsoft dll-fil? Ved ikke om det er der, problemet ligger?
vi kan lave den dynamisk, nu har du jo fået mig startet! Function finddato(ugenr, aar) ugedag = 1 for i = 1 to 7 dato = i &"-01-"&aar if Lcase(WeekdayName(weekday(dato))) = "mandag" then ugedag = i next dato = ugedag & "-01-" & aar dag1 = datepart("ww", dato, vbMonday, vbFirstFourDays) while dag1 <> 1 ugedag = ugedag + 1 dato = ugedag & "-01-" & aar dag1 = datepart("ww", dato, vbMonday, vbFirstFourDays) wend dato = clng(ugedag) & "-01-" & aar dato = DateAdd("d", 7*(ugenr-1), dato) finddato = dato end function
Function finddato(ugenr, aar) ugedag = 1 for i = 1 to 7 dato = aar&"-1-"&i if Lcase(WeekdayName(weekday(dato))) = "mandag" then ugedag = i next dag1 = datepart("ww", dato, vbMonday, vbFirstFourDays) while dag1 <> 1 ugedag = ugedag + 1 dato = aar &"-1-"&ugedag dag1 = datepart("ww", dato, vbMonday, vbFirstFourDays) wend dato = DateAdd("d", 7*(ugenr-1), dato) finddato = dato end function
prøv lige denne her: jeg er ikke sikker på den er skudsikker, men så jeg kan vurdere,
Function finddato(ugenr, aar) ugedag = 1 for i = 1 to 7 dato = aar&"-1-"&i if Lcase(WeekdayName(weekday(dato))) = "mandag" then ugedag = i next dato = aar&"-1-"&ugedag dato = DateAdd("d", 7*(ugenr-1), dato) finddato = dato end function
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.