Voor het berekenen van de netto werktijd(dus bruto tijd - pauze), maak ik gebruik van een functie.
Nu wil ik graag deze functie uitbreiden, dit door middel van een pauze matrix waarin cel a1 een begintijd van de pauze en in cel a2 de eindtijd van de pauze en in cel 3 de duur van de pauze. De tijdnotatie die ik gebruik is bijvoorbeeld: 07.00-18.15.
In het onderstaande script wat ik gebruik voor de formule staat er in de if < dan een bepaalde tijd(in het voorbeeld: 10) en > dan een bepaalde tijd(in het voor beeld: 10). Deze tijden wil ik ophalen uit cel a1 en a2
Als er in de tijd 10 voorkom of 12.5 of 15 of 18 dan wordt er bij pause wat opgeteld. Deze waarde wil ik ophalen uit cel a3.
Is dit uberhaupt mogelijk? Ik heb e.a. al geprobeerd maar er wordt bij pause niks opgeteld(dus doe ik het declareren niet goed zou je zeggen, maar ik heb nu alle soorten gegevenstypen geprobeerd en het niks werkt?!), en kan de functie eenvoudiger? In het onderstaande de functie zoals deze altijd werdt gebruikt en voldeed.
Function convert(time As String)
Dim uren As Integer
uren = Left(time, Len(time) - 3)
convert = uren + 0.01 * (Right(time, 2) / 0.6)
End Function
Function werktijd(Dagen As Range)
Dim uren
uren = 0
pauze=0
For Each cel In Dagen
If Not IsEmpty(cel.Value) Then
begin = convert(CStr(Left(cel.Value, 5)))
eind = convert(CStr(Right(cel.Value, 5)))
uren = uren + (eind - begin)
If begin < 10 And eind > 10 Then pause = pause + 0.25
If begin < 12.5 And eind > 12.5 Then pause = pause + 0.5
If begin < 15 And eind > 15 Then pause = pause + 0.25
If begin < 18 And eind > 18 Then pause = pause + 0.25 End If
Next
werktijd = uren - pause
End Function
Nu wil ik graag deze functie uitbreiden, dit door middel van een pauze matrix waarin cel a1 een begintijd van de pauze en in cel a2 de eindtijd van de pauze en in cel 3 de duur van de pauze. De tijdnotatie die ik gebruik is bijvoorbeeld: 07.00-18.15.
In het onderstaande script wat ik gebruik voor de formule staat er in de if < dan een bepaalde tijd(in het voorbeeld: 10) en > dan een bepaalde tijd(in het voor beeld: 10). Deze tijden wil ik ophalen uit cel a1 en a2
Als er in de tijd 10 voorkom of 12.5 of 15 of 18 dan wordt er bij pause wat opgeteld. Deze waarde wil ik ophalen uit cel a3.
Is dit uberhaupt mogelijk? Ik heb e.a. al geprobeerd maar er wordt bij pause niks opgeteld(dus doe ik het declareren niet goed zou je zeggen, maar ik heb nu alle soorten gegevenstypen geprobeerd en het niks werkt?!), en kan de functie eenvoudiger? In het onderstaande de functie zoals deze altijd werdt gebruikt en voldeed.
Function convert(time As String)
Dim uren As Integer
uren = Left(time, Len(time) - 3)
convert = uren + 0.01 * (Right(time, 2) / 0.6)
End Function
Function werktijd(Dagen As Range)
Dim uren
uren = 0
pauze=0
For Each cel In Dagen
If Not IsEmpty(cel.Value) Then
begin = convert(CStr(Left(cel.Value, 5)))
eind = convert(CStr(Right(cel.Value, 5)))
uren = uren + (eind - begin)
If begin < 10 And eind > 10 Then pause = pause + 0.25
If begin < 12.5 And eind > 12.5 Then pause = pause + 0.5
If begin < 15 And eind > 15 Then pause = pause + 0.25
If begin < 18 And eind > 18 Then pause = pause + 0.25 End If
Next
werktijd = uren - pause
End Function
Laatst bewerkt: