Resta sucesiva desde formulario para ser registrado en celdas

Estoy diseñando un pequeño control de pagos con otros datos como fecha (Lo hice con Calendar) forma de pago (con un combobox) etc., los cuales se deben colocar en la última celda de la columna indicada. Lo cierto es que sólo me falta el monto cancelado y por eso requiero de tu valiosa ayuda.

Te explico...

En la columna "Abonó" de debe colocar el costo del mes cancelado. El problema es que cuando pagan más del mes se debe restar la mensualidad al monto cancelado y el resultado restarlo al monto del mes siguiente y así sucesivamente y finalmente si el último resultado no alcanza al costo del mes entonces queda abonado.

Todo eso lo estoy diseñando en el siguiente formulario

Donde selecciono el apartamento y luego cargo los datos.

Estaba pensando hacerlo en el evento click del ComboBox de selección del apto para que me diga los montos a cancelar con el monto insertado. Bueno, es una idea. Si tienes otro sugerencia te lo agradezco.

Este es el código que llevo:

Private Sub forpag_Change()

If forpag.Value <> "E" Then
TextNumref.Visible = True
Label4.Visible = True
ActiveSheet.Range("B:B").End(xlDown).Offset(1, 0).Value = forpag.Value
ActiveSheet.Range("C:C").End(xlDown).Offset(1, 0).Value = TextNumref.Value
Else
TextNumref.Visible = False
Label4.Visible = False
ActiveSheet.Range("B:B").End(xlDown).Offset(1, 0).Value = forpag.Value
ActiveSheet.Range("C:C").End(xlDown).Offset(1, 0).Value = "Efectivo"
End If

End Sub
Private Sub forpag_Click()
If forpag.Value <> "E" Then
TextNumref.Visible = True
Label4.Visible = True

Else
TextNumref.Visible = False
Label4.Visible = False

End If
End Sub

Private Sub respon_Change()
ActiveSheet.Range("I:I").End(xlDown).Offset(1, 0).Value = respon.Value
End Sub

Private Sub Hojas_Change()
Hojas.DropDown
End Sub
Private Sub CommandButton2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 27 Then End
End Sub

Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 27 Then End
End Sub

Private Sub Hojas_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 27 Then End
End Sub
Private Sub CommandButton1_Click()
If ExisteHoja(Trim(Hojas)) Then
Sheets(Trim(Hojas)).Select
'Insertar formato de fecha en la celda destino
ActiveSheet.Range("G:G").End(xlDown).Offset(1, 0).Value = Calendar1.Value
ActiveSheet.Range("H:H").End(xlDown).Offset(1, 0).Value = Calendar1.Value
Call respon_Change
Call forpag_Change
Else
MsgBox "No seleccionó ningún apto. " & Chr(13) & _
"Debe seleccionar uno para ingresar los datos", 64, "Adcon"
End If
MsgBox "Hola!"
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub TextNumref_Change()
ActiveSheet.Range("C:C").End(xlDown).Offset(1, 0).Value = TextNumref.Value
End Sub

Private Sub UserForm_Initialize()
Dim i As Integer
For i = 6 To Sheets.Count
Hojas.AddItem Sheets(i).Name
Next i
End Sub

Function ExisteHoja(NombreHoja As String) As Boolean
Dim i As Integer, Ctrl As Boolean
Ctrl = False
For i = 6 To Sheets.Count
If LCase(Sheets(i).Name) = LCase(NombreHoja) Then Ctrl = True
Next i
ExisteHoja = Ctrl
End Function

Añade tu respuesta

Haz clic para o