19. september 2007 - 15:21Der er
8 kommentarer og 1 løsning
Konvertering af en given dato til et uge nr.
Hej Alle.
Jeg er i gang med at programmere et regneark hvor jeg, ved at indsætte en given dato, kan generere ugen og ligge 25 uger til.
Dvs. at når jeg skriver 19-09-2007 så skal den retunere uge 10 i 2008. Helst i formatet 10/2008. Fordi den tager den inderværende uge med når den ligger 25 til.
Ligeledes skal jeg kunne gøre det samme, hvis jeg vil ligge 10 uger til - f.eks.: 19-09-2007 > 47/2007
Jeg vil gerne ligge det i VBA'en og indtil videre har jeg anvendt følgende kode:
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
Desværre kan den ikke skælne mellem årsskiftet hvis jeg addere 25 uger.
Tak for tippet, den side kendte jeg ikke. Men desværre hjælper det mig ikke, da jeg skal addere det retunerede ugenr. med, eks., 25 uger og det resultat skal jeg bruge i formatet 10/2008.
Hvis jeg kun addere med 10 uger skal den returnere 47/2007 som beskrevet i overstående spørgsmål.
Function UDFWeekNumISO(InputDate As Date, Uger As Double) dato = DateAdd("ww", Uger, InputDate) dato1 = DatePart("ww", DateAdd("ww", Uger, InputDate), vbMonday, vbFirstFourDays) UDFWeekNumISO = dato1 & "/" & Year(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.