If you want to be able to update multiple rows simultaneously then you could use a version along the lines of:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xlCalc As XlCalculation, rngArea As Range
On Error GoTo ExitPoint
If Not Intersect(Target, Range("A:C")) Is Nothing Then
With Application
xlCalc = .Calculation
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
For Each rngArea In Target.Areas
With rngArea.Resize(, 1).Offset(, 6 - rngArea.Column)
If Target(1).Value <> "" Then
.Value = Date
Else
.ClearContents
End If
End With
Next rngArea
ExitPoint:
.ScreenUpdating = True
.Calculation = xlCalc
.EnableEvents = True
End With
End If
End Sub
It's always wise (IMO) to disable events when changing the sheet against which you have applied a Change event to avoid at best a needless event call or at worst a perpetual loop.
The above is coded such that if the target is cleared then so too is the date (remove adapt as necessary).
Bookmarks