• 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.

Werkbaredag tussen 2 datum uit volcontinurooster (in VB)

Status
Niet open voor verdere reacties.

caffie

Gebruiker
Lid geworden
2 jan 2008
Berichten
291
Werkbaredag tussen 2 datum in een volcontinurooster

ik loop een vast rooster van 10 dagen
2 x ochtend
2 x middag
2 x nacht
4 dagen vrij

10 dagen dus

hoe kan ik het aantal werkdagen berekenen

ik dat zelf begindatum - einddatum
deel die door 10 (cyclus)
dan heb ik het aantal geheel cyclus te pakken
doe die maal 6 werkdagen in een cyclus

maar hoe ga ik met de rest om




ik kom niet verder dan dit


verschiltussenlaatsewerkdagenennu = CDate(laatstewerkdag) - CDate(Now)
aantalcyclus = verschiltussenlaatsewerkdagenennu / 10

rest = verschiltussenlaatsewerkdagenennu Mod 10

Nogtewerkendagen = (aantalcyclus * 6) + rest
 
Laatst bewerkt:
kun je dit in een excel voorbeeld bestand laten zien?
 
Heb een paar dingen uitgezet zodat je gewoon bij het bestand kunt.
Er is een module toegevoegd met hierin een UDF
op het werkblad staat een klein stukje uitleg .

Hopelijk kom je hiermee verder
succes
 

Bijlagen

Deze code zit er gelikt uit
ik snap er elleen niets van
dat ligt aan mijn vb en excel kennis

kunt u me iets meer uitleggen hoe ik het aan de gang kan krijgen
De code staat volmet dingen die ik niet gebruik


Dim Rooster() As Variant (waar zijn de haakjes voor)
wat is UDF ?
en hoe kan ik de marco starten
Ubound heb ik nog nooit gebruikt
Deze ga ik even zoek op het WWW voor een voorbeeld

u schrijft
(Pas deze aan naar een datum die overeenkomt met de eerste ochtendploeg vallend op een maandag)
waarom is de maandag zo belangrijk



vergeet ik u bijna te bedankten

Bij deze hartelijk bedankt
 
Laatst bewerkt:
UDF is een afkorting en betekend "User Defined Function", dit betekend zoveel als een eigengemaakte formule die je zoals in mijn voorbeeld kunt gebruiken op het werkblad of in de form. maar meer dan genoeg uitleg op het www te vinden dan ik uit kan leggen hier.
Dim is een afkorting voor Dimensie, je reserveert hiermee een stukje geheugen van de computer om er gegevens in te bewaren

waarom de maandag belangrijk is? anders klopt de telling niet (ff kort door de bocht)
Ik zal een nieuw bestand erbij doen met wederom een voorbeeld op het werkblad maar nu met alle ploeg namen in beeld per dag per start tijd en ik ben ervan uitgegaan dat start tijden om 7 uur, 15 uur en 23 uur zijn
De lijst bestaat uit alle datums van 2016 nu kun je zien op welke maandagen een ploeg begint en hoeveel cyclussen het duurt voordat er weer op een maandag begonnen wordt door de zelfde ploeg
De referentie datums heb ik inmiddels in dit voorbeeld aangepast
 

Bijlagen

Laatst bewerkt:
mooi code maar ik snap niet wat het doet of hoe het werkt.
ik vrees dat dit allemaal een beetje boven me pet gaat

mijn code is vrijlang maar deze begrijp ik wel

op de plaats van teller in mijn code
moet dus eigenlijk een getal komen waarin staat hoeveel werkbare dagen er nog ziten in het rooster wat gekozen is

hoe kies ik me rooster
ik heb een aantal diensen
ochtend
ochtend
middag
middag
nacht
nacht
vrij
vrij
vrij
vrij



als ik een datum heb
gebruik ik mod en select case
om me rooster te bepalen
de andere 4 ploegen komen altijd 2 dagen later
Dus deze geef ik een correctie getal zodat ook dat rooster klopt


om uit tereken hoeveel werkdag er tussen zitten deel ik de begin en eind tijd door 10
Dan heb ik hele cycus
Dit klopt dus voor alle ploegen

Dan hou ik een rest over
en hiervan moet ik dus weten hoeveel werkbaredagen er nog in dat rooster zitten

Dat kunnen er dus 0 tot 6 zijn



Misschien dat dit mijn plobleem wat beter uitlegt

zover ik de voorgesteld code begrijp moet ik dus mijn gehele code verbouwen
Want dit rooster loopt niet gelijk met mijn code

mijn code aanpassen zou niet zo erg zijn als ik ook helemaal begrijp dat de code doet en hoe het werkt.
Maar zo ver gaat mijn kennis niet.
 
Als je op 21-07-1963 geboren bent hoe kun je dan op 31-07-2030 bij 0 vrijedagen met pensioen gaan? (ik neem aan dat je over Nederlandse pensioen regeling hebt) ervan uitgaande dat je op je 67e met pensioen gaat (de nieuwe regels even buiten beschouwing gelaten)
Volgens mij ga je op je 67e dus op 21-07-2030 met pensioen
Misschien moet je je berekeningen nog es onder de loep nemen (of ik):d
jij berekend dat deze meneer nog 3013 dagen moet werken ik kom op 3009 en ploeg_5 heeft tijdens dit schrijven "middag ploeg" die al bijna klaar is, dus rest nog 3008 werkdagen
 
Laatst bewerkt:
deze bijlage laat mijn uitkomst op het werkblad zien maar ook in jou form komt de uitkomst in beeld
Dus mocht je het met mijn berekening eens zijn dan kun je zelf de code wel aanpassen denk ik.

we praten hier dus over bruto werkdagen en niet per individuele werknemers (feestdagen, snipper dagen, ouwe ***lendagen, parttime contract).
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan