Home » excel » vba – Timestamp when a cell is changed via a formula (Excel)

vba – Timestamp when a cell is changed via a formula (Excel)

Posted by: admin April 23, 2020 Leave a comment


I need a way to timestamp an adjacent cell whose value changes via formula. Using this as an example I need the cell adjacent to A1 on sheet 1 to timestamp the date and time when the cell value changed.

The example I have linked to above initiates a message box when the cell value changes via formula (worksheet_change events don’t appear to recognise changes to a cell value when it contains a formula whose value is changed because of a cell change elsewhere). I don’t want the message box but I do want a timestamp.

For simplicity I will post the instructions at that linked question here, any additional help with this specific question is appreciated.

In Sheet1 Cell A1, put this formula


Now In a module paste this code

Public PrevVal As Variant

Paste this in the Sheet Code area

Private Sub Worksheet_Calculate()
    If Range("A1").Value <> PrevVal Then
        MsgBox "Value Changed"
        PrevVal = Range("A1").Value
    End If
End Sub

And lastly in the ThisWorkbook Code area paste this code

Private Sub Workbook_Open()
    PrevVal = Sheet1.Range("A1").Value
End Sub
How to&Answers:

Change MsgBox "Value Changed" to:

Range("B1").Value = Format(Now, "dd/mm/yyyy hh:mm:ss")

or whichever timestamp format you require