try this
place in your "balance" worksheet code pane the following code
Option Explicit
Public myVal As Long
Public installmentRng As Range
Private Sub Worksheet_Activate()
Set installmentRng = Me.Range("A1:A1000") ' <== here set the range that contains installment values
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim installmentChange As Long
Application.EnableEvents = False
With Target
If Not Intersect(.cells, installmentRng.SpecialCells(xlCellTypeConstants)) Is Nothing Then
installmentChange = Target.Value - myVal
.Offset(, 1) = WorksheetFunction.EDate(.Offset(, 1), -installmentChange)
myVal = Target.Value
End If
End With
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target.cells, installmentRng.SpecialCells(xlCellTypeConstants)) Is Nothing Then myVal = Target.Value
Application.EnableEvents = True
End Sub
as you see, you must only define the range that contains the "installment" values in the first sub first statement, namely:
Set installmentRng = Me.Range("A1:A1000")' <== here set the range that contains installment values
from then on you can make your changes in "installment" values