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