-
DRJ...I made one little modification. Replaced "and" with commas to show:
X Days, Y Hours, Z Minutes
Now, I'm trying to eliminate the result showing "0 Hours," but having little luck. Any ideas? Thanks.
[VBA]Option Explicit
Sub ElapsedTime3()
Dim x As Long
Dim LastRow As Long
Dim StartTime As Double
Dim EndTime As Double
Dim Days As Long
Dim Hours As Long
Dim Minutes As Long
Dim ElapsedTime As String
LastRow = Range("A65536").End(xlUp).Row
For x = 2 To LastRow
Select Case Range("C" & x).Text
Case Is = "ENTERED"
StartTime = Range("D" & x).Value
Case Is = "BILLED"
EndTime = Range("D" & x).Value
Range("E" & x).Value = EndTime - StartTime
Case Else
Range("E" & x).Value = Range("D" & x).Value - Range("D" & x - 1).Value
End Select
Select Case Range("E" & x).Value
Case Is = vbNullString
Case Is >= 1
Days = Int(Range("E" & x).Value)
Hours = Int((Range("E" & x) - Days) * 24)
Minutes = ((Range("E" & x).Value - Days) * 24 - Hours) * 60
ElapsedTime = ""
If Days = 1 Then
ElapsedTime = Days & " Day, "
Else
ElapsedTime = Days & " Days, "
End If
If Hours = 1 Then
ElapsedTime = ElapsedTime & Hours & " Hour, "
Else
ElapsedTime = ElapsedTime & Hours & " Hours, "
End If
If Minutes = 1 Then
ElapsedTime = ElapsedTime & Minutes & " Minute"
Else
ElapsedTime = ElapsedTime & Minutes & " Minutes"
End If
Range("E" & x) = ElapsedTime
Case Is < 1
Hours = Int((Range("E" & x)) * 24)
Minutes = ((Range("E" & x).Value * 24) - Hours) * 60
If Hours = 1 Then
ElapsedTime = Hours & " Hour, "
Else
ElapsedTime = Hours & " Hours, "
End If
If Minutes = 1 Then
ElapsedTime = ElapsedTime & Minutes & " Minute"
Else
ElapsedTime = ElapsedTime & Minutes & " Minutes"
End If
Range("E" & x) = ElapsedTime
End Select
Next x
End Sub [/VBA]
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules