Hi Below is some code, it does whats needed, but I want to understand why it works so I can adjust it as an when.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Target.Address = "$A$1" Then
        Range("$B$1").Value = Range("A1").Value - Range("C1").Value
        Range("C1").Value = Range("A1").Value

    End If

End Sub
How does

If Target.Address = "$A$1" Then
work? also is the absolute address of cell B1 required as the code works with just the relative address, why is that important?

Many thanks