Avatar billede macho Praktikant
24. november 2005 - 14:10 Der er 25 kommentarer og
1 løsning

Tælle antal arbejdsdage i en måned.

Hej igen,

Jeg mangler en enkelt lille ting, før min arbejdstidskalender er fuldendt:
Hvordan laver jeg en automatisk udregning af antal dage ($D7:$D37) minus lør-, søn- og helligdage. Jeg har nu fået helligdagsfunktionen til at virke, så week-ender samt helligdage er markeret med grå!

Kan man lave en sådan tælling automatisk?
Avatar billede b_hansen Novice
24. november 2005 - 14:14 #2
Prøv at se på Flemming Dahls hjemmeside. Der er en funktion til optælling på farver. Den ligger under Tips og tricks og hedder Coloredcellscount
Avatar billede b_hansen Novice
24. november 2005 - 14:14 #3
ok, det er vel fair nok, at du selv kommer først med svaret *G*
Avatar billede macho Praktikant
24. november 2005 - 14:56 #4
Flemming, idéen ser fin ud, men jeg tror ikke, at den fungerer i mit tilfælde, idet baggrundsfarven i mine dato-celler kommer ud fra en formateret betingelse. Altså cellerne er kun grå, hvis datoen er en lør-, søn- eller helligdag.

?
Avatar billede b_hansen Novice
24. november 2005 - 15:00 #5
Antallet af arbejdsdage må vel være de celler, der har en hvid baggrund
Avatar billede macho Praktikant
24. november 2005 - 15:04 #6
b_hansen -> Du har fuldstændig ret! Men som udgangspunkt har alle celler hvid baggrundsfarve. Det er først, når jeg genererer kalenderen for en given måned, at nogle af cellerne (via betinget formatering) får en grå baggrundsfarve. Ergo, hvis jeg bruger Flemmings eksempel, vil jeg enten få 0 (nul) eller 31 for januar 2006.

?
Avatar billede b_hansen Novice
24. november 2005 - 15:15 #7
Jamen, antallet af arbejdsdage er vel først relevant, når du danner kalenderen? Det er jo lidt svært at kende antallet af lørdage, søndage og helligdage, før kalenderen er dannet.
Avatar billede macho Praktikant
24. november 2005 - 15:47 #8
Igen må jeg jo give dig ret :-)
Men jeg skriver jo også kun herinde, fordi jeg ikke kan få det til at fungere.
Lad mig forklare lidt nærmere:

I D2 har jeg måned/år - kalenderen bliver bygget på baggrund af denne celle og hver enkelt dato står så i cellerne $D7:$D37. Så snart jeg ændrer i D2, til f.eks. "01-02-2006", ændres kalenderen så og samtidig skifter cellerne farve i f.t. week-ends og helligdage!
Måske det slet ikke kan lade sig gøre? Jeg ved det ikke!
Avatar billede somalpe Nybegynder
24. november 2005 - 18:06 #9
Jeg ved ikke om jeg misforstår spørgsmålet, men kan du ikke anvende funktionen antal.arbejdsdage ??
Dvs:
=antal.arbejdsdage($D7;$D37)
den Engelske variant er:
=networkdays($D7:$D37)
24. november 2005 - 18:17 #10
Networkdays kræver installation af "Tools->Add-Ins og markering af Analysis ToolPak"

du kan smide mig arket, så skal jeg kigge på det - men det skal være nu!! fvd@smartoffice.dk
Avatar billede macho Praktikant
24. november 2005 - 18:33 #11
Arket er sendt til dig, flemming...
Avatar billede macho Praktikant
24. november 2005 - 18:35 #12
somalpe -> antal.arbejdsdage tager ikke højde for helligdagene :-(
24. november 2005 - 19:41 #13
problemet er den betingede formatering, som iøvrigt også sløver dit regneark væsentligt. laver lige en version uden betinget formatering
24. november 2005 - 20:07 #14
Resultatet blev
=COUNT(D7:D37)-ColoredCellsCount(D7:D37;B4)

Har fjernet alle betingede formateringer - sløvede arket totalt.
Lavede istedet en rutine i arkets eget kodemodul, som reagerer på skift a måned (i cellen START)

Private Const msRNG_START As String = "Start"

Private Sub Worksheet_Change(ByVal Target As Range)
    'Flemming Dahl, November 2005, fvd@smartoffice.dk
    If Not Intersect(Target, Range(msRNG_START)) Is Nothing Then
        ColorWeekendsAndHolidaies Me.Name
    End If
End Sub

Hvis den celle bliver ændret, så kaldes den farve makro jeg lige lavede

Public Sub ColorWeekendsAndHolidaies(ByVal sSheetName As String)
    'Flemming Dahl, November 2005, fvd@smartoffice.dk
    ' Erstatning for betinget formatering
    Const sRNG_HEADER As String = "Header"
    Dim rCell As Range
    Dim rCurReg As Range
    Dim lCol As Long
   
    ' Find CurrentRegion med udgangspunkt i header rækken (6)
    Set rCurReg = Worksheets(sSheetName).Range(sRNG_HEADER).CurrentRegion
    ' Fjern header rækken fra rCurReg
    Set rCurReg = rCurReg.Offset(1, 0).Resize(rCurReg.Rows.Count - 1)
   
    For Each rCell In rCurReg.Columns(3).Cells
        If ErHelligdag(rCell.Value) Then
            ' Helligdag
            For lCol = -1 To rCurReg.Columns.Count - 4
                rCell.Offset(0, lCol).Interior.ColorIndex = 15
            Next lCol
        Else
            ' Arbejdsdag
            For lCol = -1 To rCurReg.Columns.Count - 4
                rCell.Offset(0, lCol).Interior.ColorIndex = xlNone
            Next lCol
        End If
    Next rCell
End Sub
24. november 2005 - 20:09 #15
Jeg ændrede iøvrigt også første linie i makroen ErHelligdag, således man ikke behøver at skrivet TRUE, TRUE. Linien ser nu således ud:

Function ErHelligdag(ByVal TestDato As Long, _
    Optional ByVal InclLørdage As Boolean = True, _
    Optional ByVal InclSøndage As Boolean = True) As Boolean

Optional = valgfri - - - og hvis den undlades står der automatisk True
Avatar billede bak Forsker
25. november 2005 - 00:02 #16
Måske kunne du tage et par ideer fra denne kalender, jeg lige har bikset sammen.
Den er uden makroer.

www.tbdl.dk/excel/kalender1.xls
Avatar billede bak Forsker
25. november 2005 - 00:15 #17
Nåh ja, man ændrer årstal bare ved at skrive et nyt i øverste række
Avatar billede macho Praktikant
25. november 2005 - 00:15 #18
bak -> Det var dælme ellers en smart kalender du dér havde fået bakset sammen! Flemming Dahl har fået en kopi af mit regneark, som består af 12 kalenderark. Så snart der er et færdigt resultat af regnearket, vil det højst sandsynligt blive frigivet på Flemmings hjemmeside - her: http://www.smartoffice.dk/Tips/Eksperten/Index.asp
Men det afgør Flemming. Han er beskæftiget til anden side i øjeblikket, så det varer nok lidt tid, før der sker noget m.h.t. kalenderen.

Men din kalender er smart; der er flere ting, som jeg kan bruge andet steds - takker... ;-)
Avatar billede Dan Elgaard Ekspert
25. november 2005 - 09:26 #19
Avatar billede bak Forsker
25. november 2005 - 09:39 #20
Smart funktion, Pistolprins :-)  godt lavet.
Avatar billede Dan Elgaard Ekspert
25. november 2005 - 18:09 #21
Bak  ->  Mange tak :-)

mvh.,
Pistolprinsen
Avatar billede macho Praktikant
26. november 2005 - 15:26 #22
Funktionen er skam meget smart, Pistolprins, men det passer ikke helt til mit formål!
29. november 2005 - 18:50 #23
Så har jeg fået mig en dejlig søn - og kan lege med excel igen *gg* Hvorlangt kom vi her?
Avatar billede macho Praktikant
29. november 2005 - 21:39 #24
Velkommen tilbage, Flemming! Et STORT tillykke med sønnen. Godt, at det er gået godt!

Jeg har sendt dig en kopi af mit regneark, som det ser ud nu! Foreløbig takker jeg for hjælpen og gi'r dig de velfortjente pts... ;-)
Avatar billede bak Forsker
29. november 2005 - 21:49 #25
et stort tillykke herfra også, Flemming. Godt gået  :-)
29. november 2005 - 21:58 #26
Takker :-)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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