I would use
Private Sub Worksheet_Change(ByVal Target As Range)
instead of
Private Sub Worksheet_Calculate()