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??
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.
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
Synes godt om
Ny brugerNybegynder
Din løsning...
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.