Hallo Kenners,
Ik ben nog steeds lerende in de wondere wereld van VBA en nu heb ik weer wat hulp nodig.
In het verleden zelf een urenverantwoordings formulier gemaakt met heel veel code.
Maar nu kom ik er achter dat ik met een kleine verandering heel veel werk heb.
Omdat ik met zakelijke informatie zit probeer ik mijn 'probleem' eerst uit te leggen d.m.v een plaatje en een stukje code.
Mocht dit niet duidelijk genoeg zijn zal ik proberen om een voorbeeld bestandje te maken.

Bij het openen van het urenbestand wordt naar aanleiding van de "application.username" het formulier gevuld met de rooster tijden van de persoon. (zie plaatje)
Zoals je in dit plaatje kunt zien is het formulier voorzien van meerdere comboboxen en dtpickers.
De code die achter de eerste combobox hangt is:
Deze code staat er in totaal 7x in.
Als er dus een wijziging is qua diensttijden of van rooster moet ik alles dus 7x aanpassen.
Dit geldt dus ook voor de dtpickers.
Is er misschien een mogelijkheid om deze code (flink) in te korten met "dim" of iets dergelijks?
Ik hoop dat mijn uitleg duidelijk genoeg is, zo niet hoor ik het wel.
Alvast bedankt voor het meedenken!
Ik ben nog steeds lerende in de wondere wereld van VBA en nu heb ik weer wat hulp nodig.
In het verleden zelf een urenverantwoordings formulier gemaakt met heel veel code.
Maar nu kom ik er achter dat ik met een kleine verandering heel veel werk heb.
Omdat ik met zakelijke informatie zit probeer ik mijn 'probleem' eerst uit te leggen d.m.v een plaatje en een stukje code.
Mocht dit niet duidelijk genoeg zijn zal ik proberen om een voorbeeld bestandje te maken.

Bij het openen van het urenbestand wordt naar aanleiding van de "application.username" het formulier gevuld met de rooster tijden van de persoon. (zie plaatje)
Zoals je in dit plaatje kunt zien is het formulier voorzien van meerdere comboboxen en dtpickers.
De code die achter de eerste combobox hangt is:
Code:
Private Sub ComboBox1_Change()
If ComboBox1.Value = "DV001" Then
DTPicker1.Value = "06:00:00"
DTPicker2.Value = "14:30:00"
ElseIf ComboBox1.Value = "DV002" Then
DTPicker1.Value = "07:00:00"
DTPicker2.Value = "15:30:00"
ElseIf ComboBox1.Value = "DL001" Then
DTPicker1.Value = "14:15:00"
DTPicker2.Value = "22:45:00"
ElseIf ComboBox1.Value = "DL002" Then
DTPicker1.Value = "15:15:00"
DTPicker2.Value = "23:45:00"
ElseIf ComboBox1.Value = "CV001" Then
DTPicker1.Value = "07:00:00"
DTPicker2.Value = "15:30:00"
ElseIf ComboBox1.Value = "CV002" Then
DTPicker1.Value = "08:00:00"
DTPicker2.Value = "16:30:00"
ElseIf ComboBox1.Value = "CV003" Then
DTPicker1.Value = "08:30:00"
DTPicker2.Value = "17:00:00"
ElseIf ComboBox1.Value = "CL001" Then
DTPicker1.Value = "13:00:00"
DTPicker2.Value = "21:30:00"
ElseIf ComboBox1.Value = "CL002" Then
DTPicker1.Value = "13:30:00"
DTPicker2.Value = "22:00:00"
ElseIf ComboBox1.Value = "CL101" Then
DTPicker1.Value = "13:00:00"
DTPicker2.Value = "22:00:00"
ElseIf ComboBox1.Value = "CV102" Then
DTPicker1.Value = "09:00:00"
DTPicker2.Value = "15:00:00"
ElseIf ComboBox1.Value = "CV103" Then
DTPicker1.Value = "08:00:00"
DTPicker2.Value = "17:30:00"
ElseIf ComboBox1.Value = "RV001" Then
DTPicker1.Value = "07:45:00"
DTPicker2.Value = "16:15:00"
ElseIf ComboBox1.Value = "RV101" Then
DTPicker1.Value = "07:45:00"
DTPicker2.Value = "15:15:00"
ElseIf ComboBox1.Value = "RV102" Then
DTPicker1.Value = "07:45:00"
DTPicker2.Value = "11:15:00"
ElseIf ComboBox1.Value = "DL001" Then
DTPicker1.Value = "07:00:00"
DTPicker2.Value = "15:30:00"
ElseIf ComboBox1.Value = "GV001" Then
DTPicker1.Value = "08:30:00"
DTPicker2.Value = "17:00:00"
ElseIf ComboBox1.Value = "AV001" Then
DTPicker1.Value = "07:00:00"
DTPicker2.Value = "15:30:00"
ElseIf ComboBox1.Value = "AV002" Then
DTPicker1.Value = "09:00:00"
DTPicker2.Value = "17:30:00"
ElseIf ComboBox1.Value = "PR001" Then
DTPicker1.Value = "06:30:00"
DTPicker2.Value = "15:30:00"
ElseIf ComboBox1.Value = "PR002" Then
DTPicker1.Value = "08:00:00"
DTPicker2.Value = "17:00:00"
ElseIf ComboBox1.Value = "RN001" Then
DTPicker1.Value = "22:00:00"
DTPicker2.Value = "06:00:00"
ElseIf ComboBox1.Value = "PR1" Then
DTPicker1.Value = "09:00:00"
DTPicker2.Value = "17:30:00"
ElseIf ComboBox1.Value = "PR4" Then
DTPicker1.Value = "07:00:00"
DTPicker2.Value = "16:00:00"
ElseIf ComboBox1.Value = "APDIENST" Then
MsgBox ("Je hebt een aangepaste dienst ingevuld." & vbCrLf & _
"Vul hieronder de juist gewerkte tijden in." & vbCrLf & "En vul daaronder in of je de uren aangevuld wilt hebben, " & vbCrLf & _
"J=8, J1=8,5, J2=6, dit geldt ook voor bijzonderverlof"), vbExclamation, "Invullen!"
DTPicker1.Enabled = True
DTPicker2.Enabled = True
ElseIf ComboBox1.Value = "Verlof" Then
MsgBox ("Vul in het onderste vakje het verlof in: " & vbCrLf & _
"V1=8 uur, V2=8,5 uur en V3=6 uur verlof"), vbInformation, "Verlofinvullen"
DTPicker1.Value = "00:00:00"
DTPicker2.Value = "00:00:00"
ElseIf ComboBox1.Value = "Ziek" Then
MsgBox ("Vul in het onderste vakje de ziekte uren in: " & vbCrLf & _
"Z=8, Z1=8,5 en Z2=6 uur ziek"), vbInformation, "Ziektediensten"
DTPicker1.Value = "00:00:00"
DTPicker2.Value = "00:00:00"
ElseIf ComboBox1.Value = "TAXI" Then
MsgBox ("Vul in het onderste vakje de taxi uren in: " & vbCrLf & _
"Er wordt standaard 30 min pauze afgehaald, is dit meer geweest graag melden!!!!" & vbCrLf & _
"Als je niet aan 8 uur komt, ook graag aanvullen met verlof invullen!"), vbInformation, "Taxidiensten"
DTPicker1.Enabled = True
DTPicker2.Enabled = True
Else
DTPicker1.Value = "00:00:00"
DTPicker2.Value = "00:00:00"
End If
Deze code staat er in totaal 7x in.
Als er dus een wijziging is qua diensttijden of van rooster moet ik alles dus 7x aanpassen.
Dit geldt dus ook voor de dtpickers.
Is er misschien een mogelijkheid om deze code (flink) in te korten met "dim" of iets dergelijks?
Ik hoop dat mijn uitleg duidelijk genoeg is, zo niet hoor ik het wel.
Alvast bedankt voor het meedenken!