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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.