11. februar 2005 - 14:52Der er
2 kommentarer og 1 løsning
Lidt mere kalendersnak
I en tidligere debat, indgik der et vba-script til en kalender - venligst videregivet af kabbak...
Den virker jo fint, men jeg har et lille ekstra spørgsmål...
Jeg arbejder i en kursusvirksomhed, hvor kursister sagtens kan deltage i et forløb, som varer et halvt års tid. Derfor kan der forekomme helligdage fra to forskellige årstal. (F.eks. julen i 2004 og påsken i 2005). Er der en snedig måde at omskrive helligdags-delfunktionen, så den ikke trækker årstallet fra påskedags-delfunktionen, men tager årstallet direkte fra en indtastet dato og checker om det er en helligdag...???
(Jeg har også kommenteret den anden tråd. Da jeg ikke er så "eksperten-erfaren" og ikke ved, hvor mange der interesserer sig for ældre debatter, beklager jeg at jeg også opretter en ny debat her, hvis det ikke er helt OK...)
hvis du har datoen i A1 kan du bruge denne funktion i B1
=HelligdagsNavn(A1)
du skal have disse funktioner i et modul
Function Påskedag(InputYear As Integer) As Long ' Returnerer datoen for Påskedag Dim d As Integer d = (((255 - 11 * (InputYear Mod 19)) - 21) Mod 30) + 21 Påskedag = DateSerial(InputYear, 3, 1) + d + (d > 48) + 6 - _ ((InputYear + InputYear \ 4 + d + (d > 48) + 1) Mod 7) End Function
Function HelligdagsNavn(lngdate As Long) As String ' bruger funktionen Påskedag Dim InputYear As Integer, PD As Long, OK As Boolean If lngdate <= 0 Then lngdate = Date InputYear = Year(lngdate) PD = Påskedag(InputYear) OK = True Select Case lngdate ' Tester nedenstående påstande mod datoen Case DateSerial(InputYear, 1, 1): HelligdagsNavn = "Nytårsdag" Case PD - 3: HelligdagsNavn = "Skærtorsdag" Case PD - 2: HelligdagsNavn = "Langfredag" Case PD: HelligdagsNavn = "Påskedag" Case PD + 1: HelligdagsNavn = "2. Påskedag" Case DateSerial(InputYear, 6, 5): HelligdagsNavn = "Grundlovsdag" Case PD + 26: HelligdagsNavn = "Store Bededag" Case PD + 39: HelligdagsNavn = "Kristi Himmelfartsdag" Case PD + 49: HelligdagsNavn = "Pinsedag" Case PD + 50: HelligdagsNavn = "2. Pinsedag" Case DateSerial(InputYear, 12, 24): HelligdagsNavn = "Julaftensdag" Case DateSerial(InputYear, 12, 25): HelligdagsNavn = "1.Juledag" Case DateSerial(InputYear, 12, 26): HelligdagsNavn = "2.Juledag" Case DateSerial(InputYear, 12, 31): HelligdagsNavn = "Nytårsaftensdag" Case Else End Select OK = False 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.