• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Uren uitrekenen, verdelen in tijdvlakken

Status
Niet open voor verdere reacties.

Kishapawpad

Gebruiker
Lid geworden
17 jun 2015
Berichten
38
Beste Ex(cel)perts,

Hopelijk kunnen jullie ons helpen met het verwerken van uren voor de salaris administratie. Wij zijn begonnen met het bijhouden van gewerkte uren van flexwerkers in Excel, wat an sich prima werkt, echter worden het steeds meer diensten en de foutgevoeligheid neemt daardoor toe. Het is een heel naar idee, dat medewerkers misschien te weinig uitbetaald krijgen voor het werk wat ze doen.

Bijgevoegd een voorbeeld van 1 week diensten die wij in excel invoeren. De uren verdelen wij handmatig over de toeslagen, het zou fijn zijn als dat met formule's, of misschien beter nog met een knop, geregeld kan worden.

Omdat het bestand erg groot is, en wij alleen maar simpele laptops hebben, moeten we een beetje rekening houden met rekenkracht. Echter zou het wel superfijn zijn als alle uren met 1 druk op de knop ingevuld worden. Dan kunnen we namelijk handmatige aanpassingen doen zonder formule's in de cellen te verstoren.

De volgende regels moet de formule of het script bewerkstelligen:

- Maandag t/m Vrijdag tussen 7.00 en 19.00 = 100% uren
- Maandag t/m Donderdag tussen 19.00 en 7.00 = 115% uren
- Vrijdag na 19.00, t/m gehele Zaterdag = 130% uren
- Gehele zondag, tot maandag 7.00 = 145% uren

- Feestdagen zijn 200% uren (dit kunnen we ook handmatig wel doen)

- Overigens krijgen alle medewerkers een hoop pauze's tussendoor. Bij diensten langer dan 4 uur, wordt er volgens CAO een half uur pauze onbetaald ingelast. Wij houden deze pauze in als ze meer dan 5,5 uur gewerkt hebben.

Hopelijk ben ik duidelijk genoeg en vraag ik niet te veel. Bij voorbaat dank voor enig advies!

Bekijk bijlage Excel uren berekenen.xlsx
 
Laatst bewerkt:
Wat je opzet wat onhandig maakt is dat de begin -en eindtijd niet altijd op dezelfde dag betrekking hebben.
Daarnaast zul je nog moeten aangeven op welke uren de pauze-uren in mindering moeten worden gebracht? (altijd Loods100%?? En indien deze 0 is...?)
Ik heb een macro-oplossing gemaakt. Deze werkt vooralsnog voor de kolom 100% en 115%. (na druk op de knop verschijnen de uitkomsten in kolommen M en N).
Deze houdt dus nog geen rekening met de pauze-uren.
 

Bijlagen

  • Excel uren berekenen(Conseclusie).xlsm
    45 KB · Weergaven: 165
Wat je opzet wat onhandig maakt is dat de begin -en eindtijd niet altijd op dezelfde dag betrekking hebben.
Daarnaast zul je nog moeten aangeven op welke uren de pauze-uren in mindering moeten worden gebracht? (altijd Loods100%?? En indien deze 0 is...?)
Ik heb een macro-oplossing gemaakt. Deze werkt vooralsnog voor de kolom 100% en 115%. (na druk op de knop verschijnen de uitkomsten in kolommen M en N).
Deze houdt dus nog geen rekening met de pauze-uren.

Dat is precies wat ik zoek! En snel gedaan ook, sorry voor het late antwoorden, ik had helaas eerder geen tijd om er naar te kijken.

In principe worden pauze's afgetrokken van het percentage waar de meeste uren in gedraaid zijn (indien hetzelfde, laagst mogelijke percentage) en dus alleen als er meer dan 5,5 uur gewerkt is. Ik ben al aan het proberen geweest de code zelf uit te breiden, maar het gaat toch echt te ver boven mijn pet! Mocht je nog tijd en zin hebben zou het perfect zijn als je de code nog verder uit kan breiden.

Overigens gaf je aan dat de huidige opzet een beetje onhandig is. Wat zou je dan adviseren om dat te verbeteren? Een formule zou in principe kunnen nagaan dat het na middernacht datum+1 is. Maar is het voor de code handiger een datum aan de eindtijd te koppelen?
 
Indien Conseclusie misschien geen tijd meer heeft om te reageren, is het mogelijk dat iemand anders kijkt naar de code van Conseclusie en deze uitlegt zodat ik hem zelf kan uitbreiden, of dat diegene het verder uitbreidt? Het is namelijk een erg mooie macro maar hij is nog niet af.
 
Excuses voor mijn late reactie.....
Ik heb een iets andere benadering gekozen, maar de macro lijkt nu volledig correct te werken.
 

Bijlagen

  • Excel uren berekenen(Conseclusie).xlsm
    50,8 KB · Weergaven: 140
Excuses voor mijn late reactie.....
Ik heb een iets andere benadering gekozen, maar de macro lijkt nu volledig correct te werken.

Geen excuses noodzakelijk uiteraard voor gratis hulp. Ik had het je zeker ook niet kwalijk genomen als je er verder geen zin in of tijd voor had!

Wederom enorm bedankt voor je hulp. Dit lijkt inderdaad bijzonder goed te werken! Er is alleen nog één dingetje.

Als je kijkt in Rij 18, wordt pauze van de 100% verrekend i.p.v. de 115%. Het is namelijk zo dat bij gelijke verdeling van uren, (dus 3,25 * 100% en 3,25 * 115%) de 0,5 pauze wordt verrekend van het hoogste percentage vlak.

Is het misschien nog mogelijk deze aan te passen? (of een uitleg hoe het moet)
 
Dat is niet wat je in #3 zei:
In principe worden pauze's afgetrokken van het percentage waar de meeste uren in gedraaid zijn (indien hetzelfde, laagst mogelijke percentage)

Maar is slechts een kleine aanpassing om het ten laste van het hoogste % te doen.
Vervang onderaan:
Code:
For Kolom = 13 To 16
door:
Code:
For Kolom = 16 To 13 Step -1
 
Beste Conseclusie, dat is perfect, dankje!

Ik had zelf al geprobeerd 13 To 16 om te draaien, het werkte echter niet zonder "Step -1" schijnbaar. :)

De vraag heb ik als opgelost gemarkeerd, en ik ben je enorm dankbaar. Zou je wel een bloemetje willen sturen!
 
Nog een kleine verbetering in de code:
De 2 regels:
Code:
U145 = U145 + Overlap(Cells(Rij, 2) + Cells(Rij, 4), Cells(Rij, 2) + (DagNr2 - DagNr1) + Cells(Rij, 5), StartDag + 6, StartDag + 6 + TimeValue("23:59:59"))
U145 = U145 + Overlap(Cells(Rij, 2) + Cells(Rij, 4), Cells(Rij, 2) + (DagNr2 - DagNr1) + Cells(Rij, 5), StartDag + 7, StartDag + 7 + TimeValue("06:59:59"))
kunnen vervangen worden door één regel:
Code:
U145 = U145 + Overlap(Cells(Rij, 2) + Cells(Rij, 4), Cells(Rij, 2) + (DagNr2 - DagNr1) + Cells(Rij, 5), StartDag + 6, StartDag + 7 + TimeValue("06:59:59"))
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan