01. februar 2010 - 07:51
Der er
6 kommentarer
Markering af søn- og helligdage
Hej
Jeg har et regneark i Excel 2007, hvor der i kolonne B står en dato (1.-31.).
Vil det på en eller anden måde være muligt, at få excel til selv at markere cellen med en farve, så søn- og helligdage bliver markeret for en given måned??
Håber ovenstående er klart beskrevet.
Mvh Jan
06. februar 2010 - 17:45
#4
Hej igen
Jeg har nu rodet med ovenstående et stykke tid, og kan godt få arket til at markere søndag vha. f.eks. =ugedag(B15;2) - men jeg kan ikke få den til at markere helligdage. Nogen der har en idé? Synes ikke jeg kan finde noget fra andre spgm. i forumet.
I øvrigt - jeg har skrevet formlen ind i kolonne A, som så giver tallet fra 1-7, men det er her, jeg får farvet cellen vha. betinget formatiring. Men hvordan får jeg farvet cellen i kolonne B, hvor datoen står?
Og et ekstra spgm: Hvis jeg skriver 'januar' i celle A1 og '2010' i celle A2 - kan det så lade sig gøre, at arket selv skriver datoerne fra 1-31 i cellerne A9-A39? Og så dermed selv retter februar ind til f.eks. 28 dage, når det bliver skrevet i celle A1.
På forhånd tak. Mvh Jan
06. februar 2010 - 18:18
#5
Men hvordan får jeg farvet cellen i kolonne B, hvor datoen står? ??????
Som skrevet i min første kommentar:
Betinget formatering -> Formlen er -> =ELLER(UGEDAG(A1)=1;UGEDAG(A1)=7)
06. februar 2010 - 23:34
#6
Hej alle
Jeg har fundet en metode i den her, som jeg har fundet her på hj.siden:
Sub farvCeller()
For Each C In Range("a13:a43").Cells
If ErHelligdag(C.Value, 1, 1) Then
C.Interior.ColorIndex = 15
Else
C.Interior.ColorIndex = xlNone
End If
Next
End Sub
Function ErHelligdag(testDato As Long, ExclLørdage As Boolean, InclSøndage As Boolean) As Boolean
Dim InputYear As Integer, PD As Long, OK As Boolean
If testDato <= 0 Then testDato = Date
InputYear = Year(testDato)
PD = Påskedag(InputYear)
OK = True
Select Case testDato
Case DateSerial(InputYear, 1, 1) ' Nytårsdag
Case PD - 7 ' Palmesøndag
Case PD - 3 ' Skærtorsdag
Case PD - 2 ' Langfredag
Case PD ' Påskedag
Case PD + 1 ' 2. påskedag
Case PD + 26 ' St. Bededag
Case PD + 39 ' Kristi Himmelfartsdag
Case PD + 49 ' Pinsedag
Case PD + 50 ' 2. Pinsedag
Case DateSerial(InputYear, 5, 1) ' 1. maj
Case DateSerial(InputYear, 6, 5) ' 5. juni
Case DateSerial(InputYear, 12, 24) ' Juleaftensdag
Case DateSerial(InputYear, 12, 25) ' Juledag
Case DateSerial(InputYear, 12, 26) ' 2. Juledag
Case DateSerial(InputYear, 12, 31) ' Nytårsaftensdag
Case Else
OK = False
If ExclLørdage Then
If Weekday(testDato, vbMonday) = 6 Then
OK = Falsh
End If
End If
If InclSøndage Then
If Weekday(testDato, vbMonday) = 7 Then
OK = True
End If
End If
End Select
ErHelligdag = OK
End Function
Function Påskedag(InputYear As Integer) As Long
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
Private Sub Worksheet_Calculate()
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
--------
Mvh Jan