Denne formel giver et mere korrekt resultat: =INT((A1-(DATE(YEAR(A1+(MOD(8-WEEKDAY(A1);7)-3));1;1))-3+MOD(WEEKDAY(DATE(YEAR(A1+(MOD(8-WEEKDAY(A1);7)-3));1;1))+1;7))/7)+1
Function UgeNr(MyDate) Dim Resten As Single Resten = (MyDate - 2) Mod 7 UgeNr = Int((MyDate - DateSerial(Year(MyDate + 3 - Resten), 1, Resten - 9)) / 7) End Function
Blot en lille bemærkning til min lidt lange formel: Den er lavet efter standarden ISO8601, der definerer at ugen begynder med mandag og uge 1 er den første uge med mindst 4 dage. Eller med andre ord: 4. januar er altid i uge 1.
Det er sgu i orden! Det er jens48's formel jeg fik til at virke først, så det må være ham der får de 60 point.
Dog vil jeg sige at VBA funktionen også virker godt! Et spørgsmål i den forbindelse er, at når jeg vil køre den i "Immediate" vinduet giver den mig en fejl.
Private Sub UgeNrTest() Debug.Print "Test 1: " & UgeNr("24-08-2007") End Sub
Function UgeNr(MyDate) Dim Resten As Single Resten = (MyDate - 2) Mod 7 UgeNr = Int((MyDate - DateSerial(Year(MyDate + 3 - Resten), 1, Resten - 9)) / 7) End Function
"Run time Error 13" Type Mismatch i linjen: Resten = (MyDate - 2) Mod 7
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.