29. juni 2010 - 15:24Der er
10 kommentarer og 1 løsning
Timeregnskab
Hej
Jeg er ved at forsøge at lave et excelark, som kan bruges til at holde styr på en række ansattes timer.
Jeg havde tænkt at man for hver dag kunne skrive en af følgende ud for hver ansat, antal timer,syg,ferie. Jeg skal på en eller anden måde have summeret for hele perioden antal timer, antal sygetimer og antal ferietimer.
hvis bare alle dage var ens kunne jeg fikse det med sumhvis. men arbejdstiden fredag er kortere end de andre.
Jeg har ugedagen på alle dagene, så der er en værdi der indikere at det er fredag.
Er der nogen der har en ide til hvordan jeg kan gøre dette.
Det var ikke ved den enkelte dag jeg mente, der har jeg allerede en hvis funktion der gør at jeg automatisk får det antal timer der er standard hvis ikke andet er tastet ind.
Det jeg skal bruger til når hele perioden er gået (en måned) kan jeg summere så jeg får arbejdstimerne (nemt nok) også får jeg ferie- og sygetimer udfra at der ved de dage er skrevet henholdsvis syg og ferie i feltet.
Jeg kan sende mit foreløbige ark til dig hvis det måske kan hjælpe med at forklare hvad det er jeg mener.
Det er ikke videre elegant, og du kan risikere at komme i konflikt med en begrænsning i det maksimale antal formeludtryk i en celle. Jeg ved ikke, hvad begrænsningen er på dette i 2007, men i 2003 ville det let give problemer, hvis der både skal tages hensyn til 5 eller 7 ugedage, til ferie og til syg. Det kommer an på dine præcise behov.
Synes godt om
Slettet bruger
29. juni 2010 - 16:54#6
Vil gerne forsøge at hjælpe, hvis du sender filen til (i udtale) hanspunktumknudsensnabelamailpunktumtelepunktumdk
Dim fraKol As Byte, tilKol As Byte Dim ptCelle As String, ptRæk As Integer, ptKol As Integer, ptVærdi Private Sub Worksheet_Change(ByVal target As Range) Rem beregn numeriske værdi for start slutkolonner fraKol = beregnNumerisk(startKol) tilKol = beregnNumerisk(slutKol) target.Select
Rem opdater, hvis ændrede celle "vedr. fravær" opdaterFravær target End Sub Private Function beregnNumerisk(kolonne) Range(kolonne & "1").Select beregnNumerisk = ActiveCell.Column End Function Private Sub opdaterFravær(adr As Range) Dim plads As Byte, plus As Byte, standardTimer As Byte, timer As Byte ptCelle = adr.Address ptRæk = adr.Row ptKol = adr.Column ptVærdi = adr.Value
If ptRæk >= startRæk And ptRæk <= slutRæk And _ ptKol >= fraKol And ptKol <= tilKol Then standardTimer = Cells(timeRæk, ptKol - 1)
If erUdfyldtMedTal(ptVærdi) = True Then timer = ptVærdi plus = offsetTimer Else timer = standardTimer
If ptVærdi <> "" Then plads = InStr(fraværsTyper, LCase(ptVærdi))
If plads = 1 Then plus = offsetSyg Else If plads = 5 Then plus = offsetFerie Else MsgBox ("Fraværstype kendes ikke") regTimer = 0 Exit Sub End If End If End If End If Cells(ptRæk, tilKol + plus) = Cells(ptRæk, tilKol + plus) + timer End If End Sub Private Function erUdfyldtMedTal(værdi) If IsNumeric(værdi) = True And værdi <> "" Then erUdfyldtMedTal = True Else erUdfyldtMedTal = False End If End Function
Synes godt om
Slettet bruger
02. juli 2010 - 07:26#10
Giv bare point til Supertekst - han har jo sendt et svar. Hans
Kik engang på denne www.firmaplan.dk tror den ville kunne være til stor hjælp, for dig.
mvh jan jensen
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.