Good Afternoon,

At the moment I'm using this code to update a table with month and years and put the value of cell BY3 into column D when it changes. However I've since learned that Worksheet_Change does not work with formulae calculations and I should be using Worksheet_Calculate(). How would I get the same results from the current below - but when BY3 is changed by a formula it also triggers the VBA? At the moment changing to worksheet_calculate() doesn't weild any results and only errors.

Your help would be appreciated.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("BY3")) Is Nothing Then
  Cells(Month(Date) + 1, "D") = WorksheetFunction.Max( _
    Val(Cells(Month(Date) + 1, "D")), Range("BY3").Value)
End If
End Sub