Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketAdvent - kan man udregne det

 Besvar Besvar
Forfatter
Sejerkilde Se dropdown
Sølv bruger
Sølv bruger


Medlem: 10.Dec.2011
Land: DK
Status: Offline
Point: 229
Direkte link til dette indlæg Emne: Advent - kan man udregne det
    Sendt: 29.Okt.2020 kl. 13:48
Hejsa

Jeg har denne VBA-kode her, som jeg har fået andet sted fra, for nogle år siden.

Nu efterspørge konen, om jeg ikke kan lave så hun kan se, hvornår 1. - 4. advent er.
Har prøvet, men VBA er godt nok ikke min stærke side.

1. advent falder altid imellem den 27. november og 3. december, men hvordan regner man det nu og hvordan kan jeg få det passet ind i den VBA-kode jeg har ?


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, InclSaturdays As Boolean, _
    InclSundays As Boolean) As String
' Returnerer Sand hvis lngDate er en Dansk HelligdagsNavn/nationaldag
' (valgfri inkludering af lørdag/søndag)
' 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
'
' Helligedage og andre mærkedage på faste datoer
'
        Case DateSerial(InputYear, 1, 1): HelligdagsNavn = "Nytårsdag"
        Case DateSerial(InputYear, 1, 6): HelligdagsNavn = "Hellig tre Konger"
        Case DateSerial(InputYear, 2, 14): HelligdagsNavn = "Valentinsdag"
        Case DateSerial(InputYear, 6, 5): HelligdagsNavn = "Grundlovsdag"
        Case DateSerial(InputYear, 6, 23): HelligdagsNavn = "Sankt Hansaften"
        Case DateSerial(InputYear, 6, 24): HelligdagsNavn = "Sankt Hansdag"
        Case DateSerial(InputYear, 10, 31): HelligdagsNavn = "Halloween"
        Case DateSerial(InputYear, 11, 10): HelligdagsNavn = "Mortensaften"
        Case DateSerial(InputYear, 11, 11): HelligdagsNavn = "Mortensdag"
        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"
'
' Helligedage og andre mærkedage på beregnet datoer
'
        Case PD - 49: HelligdagsNavn = "Fastelavn"
        Case PD - 7: HelligdagsNavn = "Palmesøndag"
        Case PD - 3: HelligdagsNavn = "Skærtorsdag"
        Case PD - 2: HelligdagsNavn = "Langfredag"
'
' minus dage efter Påskedag
'
        Case PD: HelligdagsNavn = "Påskedag"
'
' plus dage efter Påskedag
'
        Case PD + 1: HelligdagsNavn = "2. Påskedag"
        Case PD + 26: HelligdagsNavn = "Store bededag"
        Case PD + 39: HelligdagsNavn = "Kristi Himmelfartsdag"
        Case PD + 49: HelligdagsNavn = "Pinsedag"
        Case PD + 50: HelligdagsNavn = "2. Pinsedag"
        Case Else
          End Select
            OK = False
            If InclSaturdays Then ' Tester lørdage, hvis de skal medtages
                If Weekday(lngdate, vbMonday) = 6 Then
                    HelligdagsNavn = HelligdagsNavn & " Lørdag"
                End If
            End If
            If InclSundays Then ' Tester søndage, hvis de skal medtages
                If Weekday(lngdate, vbMonday) = 7 Then
                HelligdagsNavn = HelligdagsNavn & " Søndag"
                End If
            End If
  
  If lngdate = 7 * Int(DateSerial(Year(lngdate), 5, 13) / 7) + 1 Then HelligdagsNavn = "Mors Dag"
  If lngdate = 7 * Int(DateSerial(Year(lngdate), 4, 13) / 7) + 1 - 14 Then HelligdagsNavn = "Sommertid Begynder"
  If lngdate = 7 * Int(DateSerial(Year(lngdate), 11, 13) / 7) + 1 - 14 Then HelligdagsNavn = "Sommertid Slutter"
  
End Function


m.v.h.

Sejerkilde

Anvender Excel 365 DK

Til top



Til top
Hans K. Se dropdown
Guld bruger
Guld bruger


Medlem: 04.Apr.2019
Land: Danmark
Status: Offline
Point: 1410
Direkte link til dette indlæg Sendt: 30.Okt.2020 kl. 11:17
Her er formler der kan klare det.

Hvis du af en eller anden grund absolut vil have det ind i din brugerdefinerede funktion må du selv ordne det (eller få en anden til det).

Til top
Sejerkilde Se dropdown
Sølv bruger
Sølv bruger


Medlem: 10.Dec.2011
Land: DK
Status: Offline
Point: 229
Direkte link til dette indlæg Sendt: 30.Okt.2020 kl. 15:00
Jeg prøve og kigge på det og ser om jeg kan få det til at virker, som jeg gerne vil have det 
m.v.h.

Sejerkilde

Anvender Excel 365 DK

Til top
Bjarnehansen Se dropdown
Platin bruger
Platin bruger
Avatar

Medlem: 20.Nov.2011
Land: DK
Status: Offline
Point: 5475
Direkte link til dette indlæg Sendt: 30.Okt.2020 kl. 15:40
her er den indbygget

Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK
Til top
Sejerkilde Se dropdown
Sølv bruger
Sølv bruger


Medlem: 10.Dec.2011
Land: DK
Status: Offline
Point: 229
Direkte link til dette indlæg Sendt: 30.Okt.2020 kl. 17:51
Hej Bjarne

Mange tak Smile

Så skal jeg nok får det rettet til, så det passer, ind i mit ark Wink
m.v.h.

Sejerkilde

Anvender Excel 365 DK

Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk