SOLVED

limit the "NOW" function.

Copper Contributor

Is there a way (to have one cell on the top of a row) track the date that a change was made in that row? Or  is there  away to limit the "NOW" function to a few select cells? For example, =if( there there is a change in C4, =NOW, "")

Or can I place =NOW in A1. and in A2 I will put =IF(NOT(C4="", copy current reading of A1,"")

3 Replies

@CHollander 

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngBereich As Range

Application.EnableEvents = False

Set rngBereich = Range("A2:G2")

If Target.Cells.Count > 1 Then GoTo done

If Not Application.Intersect(Target, rngBereich) Is Nothing Then

If Target.Value <> "" Then
Range("A1").Value = Now
Else

End If

End If

done:
Application.EnableEvents = True
Exit Sub

End Sub

You can try this code. In the attached file you can make a change in any cell in range A2:G2 and the current time is entered in cell A1.

That was great! The next question is, how do I continue the code throughout the page? I would like that the top cell on each column tracks the most recent update of that column. (a1 tracks column a, b1 tracks column b) if you can help with that it would be a great help:grinning_face:
best response confirmed by CHollander (Copper Contributor)
Solution

@CHollander 

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngBereich As Range
Dim j As Long

Application.EnableEvents = False

Set rngBereich = Range("A2:XFD1048576")

If Target.Cells.Count > 1 Then GoTo done

If Not Application.Intersect(Target, rngBereich) Is Nothing Then

If Target.Value <> "" Then
j = Target.Column
Cells(1, j).Value = Now
Else

End If

End If

done:
Application.EnableEvents = True
Exit Sub

End Sub

You can try this code. In the attached file you can enter data in any cell in range A2:XFD1048576. The code then determines the column of the target cell and enters the current day and time in row 1 of the target column.

1 best response

Accepted Solutions
best response confirmed by CHollander (Copper Contributor)
Solution

@CHollander 

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngBereich As Range
Dim j As Long

Application.EnableEvents = False

Set rngBereich = Range("A2:XFD1048576")

If Target.Cells.Count > 1 Then GoTo done

If Not Application.Intersect(Target, rngBereich) Is Nothing Then

If Target.Value <> "" Then
j = Target.Column
Cells(1, j).Value = Now
Else

End If

End If

done:
Application.EnableEvents = True
Exit Sub

End Sub

You can try this code. In the attached file you can enter data in any cell in range A2:XFD1048576. The code then determines the column of the target cell and enters the current day and time in row 1 of the target column.

View solution in original post