Change the line
from: dt_hr = Hour(Range("R" & i).Value)
to: dt_hr = Range("B" & i).Value * 24
What is happening is that Column B has Hrs and example B7 has 50:51
which is 2.11888888888643 days
for B7 The expression Range("R" & i).Value returns 2.11888
So simply multiply that by 24 to get 50.85 hrs and then do your checks
oops Sorry