Avatar billede barin998dk Nybegynder
26. maj 2005 - 12:00 Der er 3 kommentarer og
1 løsning

Tidsregistrering i vagtskema

Nogle ansatte - lad os sige 10 stykker, skal placeres på et vagtskema.

Jeg forestiller mig, at man i to celler indtaster hhv. mødetid og sluttid for hver ansatte for hver dag. Dvs. 31 rækker - en for hver dag, og så to kolonner for hver ansatte til de to tidspunkter.

Herefter er mit problem, at jeg gerne vil lave en analyse, så jeg nemt kan overskue hvor mange der er på arbejde i løbet af dagen. F.eks. i intervaller af en halv time.

F.eks.

12:00-12:30 12:30-13:00 etc.
    3          5      -''-

Håber nogen ligger inde med et smart forslag.

Jeg har lavet nogle endeløse skitser af HVIS-funktioner som checker om starttidspunkt er større eller mindre end det aktuelle klokkeslet, men der må kunne laves en snildere makro eller hva'???

På forhånd tak...
Avatar billede s_h_m Nybegynder
29. maj 2005 - 19:02 #1
Noget i den her retning måske.

Jeg har prøvet med datoen i A3:A33 (som tal 1-31), og medarbejder A i kolonne B3:C33, medarbejder B i kolonne D3:E33 osv.
Derudover skal der navngives 4 celler, der bruges i makroen.
Navnene er: Dato, Start_tid, Slut_tid og Paa_job.

De 3 første giver sig selv, her indtastes værdierne, Paa_job returnerer antallet af medarbejdere, der er på arbejde pågældende dato og tidsrum.
Medarbejdernes tider + de to indtastningsceller er formatteret som tt:mm.
Det smarteste vil nok være, at lave en knap i regnearket der kan køre makroen.
Og her følger så makroen:

Sub Tid_reg()
Application.ScreenUpdating = False  'Slår skærmopdateringen fra mens makroen kører
Set Checkdato = Range("Dato")
Set Starttid = Range("Start_tid")
Set Sluttid = Range("Slut_tid")

Range("A3").Select 'Vælger kolonnen med dato
Do While IsEmpty(ActiveCell.Offset(1, 0)) = False  'Gennemgår cellerne i kolonnen indtil der kommer en tom celle
If ActiveCell.Value = Checkdato Then GoTo Fortsaet  'Hvis indtastningsværdien er lig med datoen fortsættes
ActiveCell.Offset(1, 0).Select  'Vælger cellen under den celle der netop er blevet checket
Loop  'Går tilbage til "Do While" og starter igen

Fortsaet:
ActiveCell.Offset(0, 1).Select  'Vælger cellen til højre for datoen
Tael = 0  'Sætter tælleren til værdien 0

Do While IsEmpty(ActiveCell.Offset(0, 0)) = False  'Gennemgår cellerne i kolonnen indtil der kommer en tom celle
If ActiveCell.Value <= Starttid And ActiveCell.Offset(0, 1).Value >= Sluttid Then Tael = Tael + 1  'Hvis indtsatningsværdierne ligger inden for arbejdstiderne fortsættes
ActiveCell.Offset(0, 2).Select  'Flytter til næste mødetidskolonne
Loop  'Går tilbage til "Do While" og starter igen

Range("Paa_job").Select  'Vælger cellen hvor værdien fra tælleren skal skrives
ActiveCell = Tael    'Indsætter tællerens værdi i cellen

Application.ScreenUpdating = True  'Slår skærmopdateringen til igen
End Sub
Avatar billede barin998dk Nybegynder
11. juli 2005 - 15:10 #2
Jeg har ikke helt fået den til at virke, men efter nogen tids granskning, kan jeg se, at den ikke er helt ved siden af... Desuden er kravene til regnearket steget en del siden da, men det er jo ikke din fejl...

Kast et svar, så får du point'ene. :-)
Avatar billede s_h_m Nybegynder
27. juli 2005 - 13:51 #3
Svar :o)
Avatar billede barin998dk Nybegynder
08. august 2005 - 08:49 #4
Undskyld ventetiden... Ferien kom over mig... :-)
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