An idea inspired by Paul's Excellent code
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("B4"), Target) Is Nothing Then LogB4 Range("B4") 'Edit B4 as needed
If Not Intersect(Range("B6"), Target) Is Nothing Then LogB6 Range("B6")
End Sub
Private Sub LogB4(ByVal Target As Range) 'Change Name "LogB4" as needed
If Target = 0 Then Exit Sub
Worksheets("Log").Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0) = Now
End Sub
Private Sub LogB6(ByVal Target As Range)
If Target = 0 Then Exit Sub
Worksheets("Log2").Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0) = Now
End Sub
My way:
Private Sub logSamT(ByVal Target As Range)
'Records time of change, what cell was changed, who changed it and the new value
'To use in worksheet Change sub:
' If Not Intersect(Range("B4"), Target) Is Nothing Then LogSamT Range("B4")
' If Not Intersect(Range("B6"), Target) Is Nothing Then LogSamT Range("B6")
'Repeat for each desired range
Dim NewCell As Range
With Worksheets("logSamT")
Set NewCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1)
NewCell = Now
NewCell.Offset(0, 1) = Target.Address
NewCell.Offset(0, 2) = Application.UserName
NewCell.Offset(0, 3) = Target.Value
End With
End Sub