Deze vraag is ook op het Excelforum geplaatst, maar daar verwacht ik geen antwoord meer.
Misschien kunnen de VBA-experten hier, wel een oplossing bieden?
De extra voorwaarde die moet toegevoegd worden, staat rood aangegeven.
Bekijk bijlage Urenreg. met ort (10).xlsm
Misschien kunnen de VBA-experten hier, wel een oplossing bieden?
De extra voorwaarde die moet toegevoegd worden, staat rood aangegeven.
Code:
Function WerkUren(Datum As Date, Procenten, Van, Tot, Tabel As Range)
Dim DagTekst As String, Dag As Integer, R As Range, N As Integer, LaatsteKolomNr As Integer
If Van > Tot Then
WerkUren = WerkUren(Datum, Procenten, Van, 1, Tabel) + WerkUren(Datum + 1, Procenten, 0, Tot, Tabel)
Exit Function
End If
LaatsteKolomNr = Tabel.Column + Tabel.Columns.Count
[COLOR="#FF0000"] 'If (Datum, 2) voorkomt in de lijst van de feestdagen op Blad2A2:A13
'Then Dag = 7
'Else Dag = Weekday(Datum, 2)[/COLOR]
Dag = Weekday(Datum, 2)
If Dag < 6 Then
DagTekst = "m-vr"
ElseIf Dag = 6 Then
DagTekst = "za"
Else
DagTekst = "zo/feest"
End If
'zet R op de overwerktabel regel
For Each R In Tabel.Columns(1).Cells
If R = Procenten And R(1, 2) = DagTekst Then
Set R = R(1, 3)
Exit For
End If
Next
If R Is Nothing Then Exit Function
If R.Column = Tabel.Column Then: Exit Function
'R staat nu op het juiste punt in de overwerktabel
'Overlap werktijden met overwerktabel bepalen en optellen
Do
If R <> "" And R(1, 2) <> "" Then
WerkUren = WerkUren + Overlap(Van, Tot, R, R(1, 2))
End If
Set R = R(1, 3)
Loop Until R.Column >= LaatsteKolomNr
End Function
Bekijk bijlage Urenreg. met ort (10).xlsm