Avatar billede zond Nybegynder
11. december 2003 - 23:02 Der er 16 kommentarer og
1 løsning

Helligdage i lønberegning

Jeg har forsøgt at finde en funktion der kan afgøre om en given dato er helligdag, weekend eller alm. hverdag.
Kan det ikke lade sig gøre at importere disse oplysninger til excel.

Jeg er igang med et regneark til beregning af løn, herunder udregning af overtid, nattillæg, diæter osv.
til efterfølgende beregning af betalt arbejdsmarkedsbidrag.
Hvis nogen kender til templates for dette, er jeg måske helt fri for at lave arket selv?!?
Avatar billede krasmussen Nybegynder
11. december 2003 - 23:25 #1
Avatar billede kabbak Professor
11. december 2003 - 23:51 #2
den er på dansk her

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
        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
            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
 
End Function
Avatar billede kabbak Professor
11. december 2003 - 23:53 #3
du skal kun bruge Functionen  HelligdagsNavn, den kalder selv Functionen Påskedag
Avatar billede zond Nybegynder
12. december 2003 - 18:40 #4
Godt så... jeg er vist ikke helt på jeres niveau hvad angår funktioner i excel.
Hvis jeg nu skal udfylde et helt kalender år med daglige arbejdstider, og udregne overtid osv. afhængigt af helligdage/weekend/hverdage, hvordan anvender jeg så funktionen?.

Jeg forestillede mig at have datoer i kolonne A,
Aftalt arbejdstid (Fra-Til) i B og C. afhængig af returneringen fra funktionen
Reel arbejdstid (fra-til) i D og E,
Timeantal i F.
Overtimer (sats 1-2-3) i G,H og I.
Diverse andre tillæg i J,K og L.
Beregnet Dagløn i M.
Arbejdsmarkedsbidrag i N
Jeg har nok brug for yderligere "flag" for at tage højde for andre forhold.

Vil det være helt hul i hovedet at gøre det på denne måde?
Hvis det ikke lyder helt skidt, skal jeg bare vide hvordan jeg skal indsætte funktionen. Skal den defineres et eller andet sted og derefter kaldes når "aftalt arbejdstid" skal beregnes, eller skal den indsættes direkte i hver enkelt celle?
Avatar billede kabbak Professor
12. december 2003 - 18:47 #5
Sæt dato i Bkolonnen og brug funktionen i A kolonnen

            12-12-03
Lørdag            13-12-03
Søndag            14-12-03
            15-12-03
            16-12-03
            17-12-03
            18-12-03
            19-12-03
Lørdag            20-12-03
Søndag            21-12-03
            22-12-03
            23-12-03
Julaftensdag    24-12-03
1. Juledag    25-12-03
2. Juledag    26-12-03
Lørdag            27-12-03
Søndag            28-12-03
            29-12-03
            30-12-03
Nytårsaftensdag    31-12-03
Nytårsdag    01-01-04
Avatar billede zond Nybegynder
12. december 2003 - 18:47 #6
Jeg har tidligere været igang med arket, men blev ikke færdig da min daværende PC brændte sammen, så jeg er nu startet forfra.

Dengang forsøgte jeg mig med manuelt at sætte "flag" (eller hvad man nu kalder det) til at definere helligdage, tillæg osv. Jeg vil egentlig bare slippe for at skulle gå maylanden igennem for at sætte alle disse flag for helligdage.
Avatar billede zond Nybegynder
12. december 2003 - 18:56 #7
kabbak: Jeg er dummie! (men anser dog ikke mig selv for dum) Mit problem er at jeg ikke aner hvordan jeg "bruger" funktionen i kolonne A.
Hvordan refererer den til kolonne B, og hvordan får jeg indsat den i kolonnen?
Avatar billede kabbak Professor
12. december 2003 - 20:07 #8
Klik ind i den celle du vil have første HelligdagsNavn i.

Vælg Indsæt > funktioner >
Funktionskatogori = brugerdefinerede
Funktionsnavn = HelligdagsNavn

Så kommer der en  dialog op

Første felt skal pege på dit datofelt
anden og tredie felt om du vil vise lørdag og søndag, de sættes til 1, så vises de.
Avatar billede kabbak Professor
12. december 2003 - 20:09 #9
du kan også kalde den ved at skrive
=HelligdagsNavn(B2;1;1) i celle A2
Avatar billede zond Nybegynder
13. december 2003 - 13:01 #10
Fint nok.. så var jeg ikke helt galt afmarcheret.
Problemet ligger i, at jeg ikke har mulighed for at lave brugerdefinerede funktioner.
Jeg ved ikke om det kan være fordi jeg bruger en student version af Office XP.
Hvis optionen "brugerdefinerede funktioner" skal enables på en eller anden måde kan det måske løses?? Ellers er jeg villig til at give point for dit forsøg Kabbak.
Avatar billede kabbak Professor
13. december 2003 - 13:24 #11
Jeg ved ikke om der er forskel på optionen "brugerdefinerede funktioner" i excel student version , så der kan jeg ikke hjælpe.

ang. point, er det den første der kommer med brugbar henvisning / løsning der skal have dem.

Så point må gå til krasmussen
Avatar billede zond Nybegynder
13. december 2003 - 14:26 #12
Javel... jamen så må Krasmussen vel komme med et svar:o)
Avatar billede krasmussen Nybegynder
13. december 2003 - 15:35 #13
Pænt af jer begge - MEN min løsning var blot en henvisning og hverken en forklaring eller uddybelse af emnet.

Så point til kabbak!
Avatar billede zond Nybegynder
13. december 2003 - 16:57 #14
Suit yourself :o)
hvis vi er derhenne kan min revisor nok overtales til at tilbageføre points til min egen konto *G*
Avatar billede kabbak Professor
13. december 2003 - 16:58 #15
ok så svar da. ;-p
Avatar billede kabbak Professor
13. december 2003 - 17:06 #16
har du prøvet at kalde funktionen således

=HelligdagsNavn(B2;1;1) i celle A2
Hvor B2 er din dato

Har du også husket at sætte funktionen ind  i et modul, og ikke i et ark modul
Avatar billede zond Nybegynder
15. december 2003 - 17:22 #17
Jeg har afgivet points til kabbak, men jeg tror nu nok vi startede det forkerte sted. Først og fremmest skal jeg have lagt funktionen ind i et modul... så langt er jeg ikke kommet endnu.
Jeg har gang i et andet spørgsmål desangående, men selve funktionen har jeg da fået ud af det (at jeg så ikke kan anvende den er jo en anden sag).
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester