03. januar 2008 - 23:07Der er
8 kommentarer og 1 løsning
helligdage og markering i datoliste
Jeg bruger denne kode til opretttelse af kalender
Dim qnske As Integer qnske = InputBox("Skriv ønsket antal kalenderdage") Dim antal As Integer antal = 10 + qnske Dim kalender As Variant kalender = "A10:A" & antal Dim ugedag As Variant ugedag = "B10:C" & antal Range(kalender).Select Selection.DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:= _ xlDay, Step:=1, Trend:=False Range(ugedag).Select Selection.FillDown Range("d10").Select
End Sub
Jeg har været inde i flere spørgsmål om helligdage og hvordan man kan markerer disse med navn og i rødt, men jeg kan ikke få det til at fungerer i sammenhæng med ovennævnte. Hvordan gør jeg det.
Det er at helligdagene i den datoliste jeg laver bliver vist således at datofeltet ( kolonne A) i stedet for at blive vist som f.ek.s 25-12-07 bliver vist som 1 juledag og i rødt
Dim qnske As Integer qnske = InputBox("Skriv ønsket antal kalenderdage") Dim antal As Integer antal = 10 + qnske Dim kalender As Variant kalender = "A10:A" & antal Dim ugedag As Variant ugedag = "B10:C" & antal Range(kalender).Select Selection.DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:= _ xlDay, Step:=1, Trend:=False Range(ugedag).Select Selection.FillDown Range("d10").Select For Each c In Range(kalender) c.Offset(0, 1).Value = HelligdagsNavn(c.Value) c.Offset(0, 1).Font.ColorIndex = 3 Next c
End Sub 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
Range("d10").Select For Each c In Range(kalender) If HelligdagsNavn(c.Value) <> "" Then c.Offset(0, 1).Value = HelligdagsNavn(c.Value) c.Offset(0, 1).Font.ColorIndex = 3 End If Next c end sub
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.