PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBATimme & Minut ??Timme & Minut ??
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2021-12-29 21:26
 
Hej, jag har ett tal i celladressen (Rad 2202, Kolumn 5), talet är 3,91180555 och jag behöver ta ut Timme och Minut ur detta tal och använder mig av

Timme = Hour(Cells(2202, 5))
Minut = Minute(Cells(2202, 5))

Jag får ut talet 21 som Timme och 53 som Minut men Timme skall bli 93 ?? Var är det jag för fel ??

/fleXcel
Nytt inlägg
 2021-12-30 11:06
 

 Hej hej

Precis som funktionen timme eller hour i Excel så kommer även vba att tolka decimaldelen som timmar, vilket innebär att 21 är korrekt. Vill du få ut 93, dvs heltal + decimaltal, så får du beskriva även detta:

Fix plockar ut heltalsdelen, denna multipliceras med 24(antalet timmar på ett dygn)), +Hour, hanterar decimaltalsdelen.

fix(Cells(2202, 5))*24+hour(Cells(2202, 5))

Sedan så ska man helst läsa och skriva så få gånger som möjligt från själva bladet och istället hantera detta med variabler:

Dim mydbl as double: mydbl = cells(2205,5))

timme = fix(mydbl )*24+hour(mydbl )

minut = Minute(mydbl)

/c

Nytt inlägg
 2022-01-03 12:22
 
Hej och Tack Christian. Jag sitter på bussen just nu, utan dator, så jag får se över detta hemma senare.

/fleXcel
Nytt inlägg
 2022-01-03 22:15
 
Hej igen Christian. Nu är jag hemma igen och har lagt in den här "fix" i mina kodrader och det fungerar fint !!
Jag hade använt "Timme" som variabel för String tidigare så jag behöll din MyDbl som timme i det här fallet.
Här är mina kodrader där detta finns inlagt nu för att kontrollera att Veckovilan blir av som Transportstyrelsen tänkte, med sina 56 timmar, dock i en tvåveckorsperiod får den vara 90 timmar. Jag arbetade 12 dygn i sträck och kom upp i över 90 timmar så de jag kör för verkar ha jättedålig koll på detta...

Sub KollaVeckoVilan()

Dim MyDbl As Double

Passera = True: DygnTimmar = 0

'Kontrollerar att Veckovilan uppfylls...

'När jag markerat en tjänst och dygnsvilan är inskriven kontrolleras celler bakåt i tiden för att se hur många dygn du arbetat i en följd.

'Om 7 dygn räknats fram skrivs de sammanräknade timmarna in i cellen - på raden för den nya tjänsten - Veckovila i kolumn BE(57)

'Om arbetstimmarna överstiger 56 timmar markeras dygnsvilans cell - på raden för den nya tjänsten - som röd i stället för grå.

'§ Under två på varandra följande veckor får körtiden vara maximalt 90 timmar.
'§ En normal veckovila ska vara minst 45 sammanhängande timmar, medan en reducerad veckovila inte får understiga 24 sammanhängande timmar.
'§ Under två på varandra följande veckor ska du ta minst två normala eller en normal och en reducerad veckovila. En reducerad veckovila ska
'§ kompenseras genom att mellanskillnaden tas tillsammans med en annan vila på minst 9 timmar. Kompensationen ska vara genomförd före utgången
'§ av den tredje veckan efter veckan då den reducerade veckovilan togs.

''' Worksheets("2019").Cells(NyAdress, 3).Select '''

If Worksheets("2019").Cells(NyAdress, 3) <> "" Then

'Kolla nu om det finns några timmar inskrivna i cellen ovanför

''' Worksheets("2019").Cells(NyAdress, 3).Select '''

If Worksheets("2019").Cells(NyAdress, 3) <> "" Then

For Wv = NyAdress To 9999

''' Worksheets("2019").Cells(Wv, 3).Select '''

If Worksheets("2019").Cells(Wv, 3) <> "" Then

Stopp = Wv

Wv = Wv - 2

Else

Exit For

End If

Next Wv


For Wv = Stopp To 9999

If Worksheets("2019").Cells(Wv, 3) <> "" Then

DygnTimmar = DygnTimmar + Worksheets("2019").Cells(Wv, 3)

Worksheets("2019").Cells(Wv, 57) = DygnTimmar

If DygnTimmar >= 2.33 Then '= 56 timmar som är MAX arbetade timmar/vecka, 90 timmar för TVÅ veckor...

'markera den grå timtids-cellen med röd botten

Worksheets("2019").Cells(NyAdress, 5).Select

With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
End With

If Wv = NyAdress Then

'Konverterar DygnTimmar till 00:00...
MyDbl = Fix(Cells(NyAdress, 57)) * 24 + Hour(Cells(NyAdress, 57)) <<<<<<<<<<<<<<<<<<<<<<<
Minut = Minute(Cells(NyAdress, 57))

'Lägger in en kommentar i cellen om att antalet arbetade timmar utan Veckovila är för många...
Range("E" & NyAdress).AddCommentThreaded ("Du har arbetat för många timmar utan veckovila, " & MyDbl & ":" & Minut & " timmar, Veckovila anmodas !")

End If

End If

Else

Exit For

End If

Next Wv

End If

End If

End Sub
Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBATimme & Minut ??Timme & Minut ??

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter