Userform + Datumveld en uitkomstveld

Status
Niet open voor verdere reacties.

ExcelTonnie

Gebruiker
Lid geworden
5 jul 2016
Berichten
308
Via een userform wordt er een datum geplaatst en wil dat deze datum een dienst genereerd in een textbox op dat formulier.

Via excel laat ik deze rekenen adv tijdwaarden echter lukt me dit niet via VBA.

Tijdseenheden zijn 6:00 t/m 14:30 is Ochtend.
Tijdseenheden zijn14:31 t/m 23:00 is Middag.
Tijdseenheden zijn 23:01 t/m 5:59 is Nacht.

Hoe pak ik dit aan, iemand die me daarmee kan helpen.

Heb even een bestandje bijgevoegd en zou het zo willen maken.
Code moet wel geschikt zijn voor Excel/VBA 2016 vanwege mijn werk.
 

Bijlagen

  • Dienst.xlsm
    19,1 KB · Weergaven: 21
Laatst bewerkt:
Vast wel.
Zie de link in mijn handtekening.

Of probeer dit eens:
 

Bijlagen

  • ExcelTonnie.png
    ExcelTonnie.png
    8,5 KB · Weergaven: 26
Laatst bewerkt:
Code:
Sub M_snb()
   MsgBox Date - 1 / 24 & "   -   " & Date + 1 / 4, , "nacht"
   MsgBox Date + 1 / 4 & "   -   " & Date + 29 / 48, , "ochtend"
   MsgBox Date + 29 / 48 & "   -   " & Date + 23 / 24, , "middag"
End Sub
 
Code:
Sub M_snb()
   MsgBox Date - 1 / 24 & "   -   " & Date + 1 / 4, , "nacht"
   MsgBox Date + 1 / 4 & "   -   " & Date + 29 / 48, , "ochtend"
   MsgBox Date + 29 / 48 & "   -   " & Date + 23 / 24, , "middag"
End Sub



Ik heb een voorbeeld bijgevoegd zoals gevraagd en helaas kan ik hier niets mee.
Weet dat dit jou manier is om mensen aan te sporen hierover na te denken.
 
In excel had ik het zo opgelost maar ik wil dit dus via VBA regelen

Code:
Label-Tijd	              Tijdwaarde	                Dienst
15:55	                         0,663	                   Middag                      =ALS(EN(G2>=0,25;G2<0,604167);"Ochtend";ALS(EN(G2>0,604167;G2<0,958333);"Middag";"Nacht"))
Dit werkt goed!
 
Laatst bewerkt:
Deze UDF?
Code:
Function Dienst(Tijd As Date) As String
   If CDbl(Tijd) < 0.25 Or CDbl(Tijd) >= 0.958333333333333 Then Dienst = "Nacht"
   If CDbl(Tijd) >= 0.25 And CDbl(Tijd) < 0.604861111111111 Then Dienst = "Ochtend"
   If CDbl(Tijd) > 0.604861111111111 And CDbl(Tijd) < 0.958333333333333 Then Dienst = "Middag"
End Function
 
Laatst bewerkt:
edmoor

UDF? weet niet wat je daarmee bedoelt.

Jou voorbeeld zou niet weten hoe dit te implementeren in mijn voorbeeld bestand.
Of ik ben niet duidelijk wat ik precies zou willen of ik snap jullie voorbeelden niet.
 
UDF = User Defined Function.
Zie je document:
 

Bijlagen

  • Dienst.xlsm
    21,9 KB · Weergaven: 18
Presenteerblaadje:
 

Bijlagen

  • __piketDienst.xlsb
    19,4 KB · Weergaven: 23
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan