Alec,
Up to this point it was one row at a time.
In my view you enlarged the scope.
Here you go...
Note: rngCell is rngCell(1, 1)
code searches thru Column 9 (I)
rngCell(1, 0) is in column H
rngCell(1, 3) is in column K
'2nd revision
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo BadEntry
Dim rngCell As Excel.Range
Dim rngAll As Excel.Range
If Target(1).Column < 8 Or Target(1).Column > 9 Then
Exit Sub
Else
Set rngAll = Application.Intersect(Target.Cells.EntireRow, Me.Columns("I"))
For Each rngCell In rngAll.Cells
If rngCell(1, 0).Value = vbNullString Or rngCell.Value = vbNullString Or _
rngCell.Value < rngCell(1, 0).Value Then
rngCell(1, 2).Value = vbNullString
rngCell(1, 3).Value = vbNullString
Else
Application.EnableEvents = False
rngCell(1, 2).Value = (rngCell.Value - rngCell(1, 0).Value) * 1440
rngCell(1, 3).Value = (rngCell.Value - rngCell(1, 0).Value) * 1440 / 60
End If
Next 'rngcell
End If
Application.EnableEvents = True
Exit Sub
BadEntry:
VBA.MsgBox Err.Description & " - " & Err.Number
Application.EnableEvents = True
End Sub
'---
Free Exce add-ins and workbooks at MediaFire...
Nothing Left To Lose,
Works like a charm! Thank you for your effort!