Como preparar un planing de pagos

Tengo una tabla de excel con doce filas correspondiente a los meses del año.

Necesito que depende la fecha actual me coloque cuando el pago es trimestral, el importe en los meses correspondientes.

Probé con:

Private Sub Worksheet_Change(ByVal Target As Range) 'Por.Dante Amor         If Not Intersect(Target, Rows("2:4")) Is Nothing Then         Application.ScreenUpdating = False         If Target.Count = 1 Then             [B13:k24].ClearContents             For j = 2 To 11                 Select Case UCase(Cells(3, j))                     Case "MENSUAL":    n = 12: s = 1                     Case "TRIMESTRAL": n = 4: s = 3                     Case "SEMESTRAL":  n = 2: s = 6                     Case "ANUAL":      n = 1: s = 12                     Case Else: Exit For                 End Select                 m = Month(Cells(2, j))                 ini = m + 12                 pago = Cells(4, j) / n                 For i = 1 To n                     Cells(ini, j) = pago                     ini = ini + s                     If ini > 24 Then                         ini = 12 + s                     End If                 Next             Next         End If     End If End Sub

He cambiado (b13:k24) por (p42:v53) que es donde tienen que ir las cantidades calculadas,

He cambiado "For j=2 to 11 por 16 to 22 porque es desde la columna p a la V pero no me hace nada.

El problema está en que yo no introduzco los datos de forma de pago ó prima total en las casillas sino que coge el valor de la celda en otra hoja.

Respuesta
1

Puedes poner una imagen de lo que tienes y de lo que esperas de resultado.

O envíame tu archivo y me explicas con comentarios y colores lo que necesitas.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “juan3vs16” y el título de esta pregunta.

Ya te  he  enviado el  Excel a  ver  si  puedes  detectar el  error.

Gracias

Te regreso la macro actualizada para que ponga los resultados en la celdas P42:V53, también cambié el evento Change por el evento Calculate, de esta forma la macro se ejecuta cuando algún valor de alguna fórmula se actualiza. Por último, ajusté los valores trimestrales y semestrales, ya que no los estaba colocando correctamente.

Private Sub Worksheet_Calculate()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    [P42:V53].ClearContents
    For j = Columns("P").Column To Columns("V").Column
        Select Case UCase(Cells(3, j))
            Case "MENSUAL":    n = 12: s = 1
            Case "TRIMESTRAL": n = 4:  s = 3
            Case "SEMESTRAL":  n = 2:  s = 6
            Case "ANUAL":      n = 1:  s = 12
            Case Else: Exit For
        End Select
        '
        mes = Month(Cells(2, j))
        ini = mes + 41
        pag = Cells(4, j) / n
        '
        For i = 1 To n
            Cells(ini, j) = pag
            ant = ini
            ini = ini + s
            If ini > 53 Then
                dif = 53 - ant
                ini = 41 + s - dif
            End If
        Next
    Next
    Application.EnableEvents = True
End Sub

S a l u d o s . D a n t e   A m o r

Recuerda valorar la respuesta.

Perfecto,  ahora  funciona  perfectamente,  lo  único  es que  me  han  desaparecido  las  opciones de  "Hacer"  y  "deshacer"  y  tampoco  responde  a  Ctrl+Z,   tiene  algo  que  ver  con lo que  acabamos de  hacer??

Una vez que ejecutas cualquier macro, la memoria de excel es destruida, por lo tanto ya no tienes el "Hacer" y el "Deshacer", mientras no ejecutes ninguna macro, tendrás en la memoria el "Hacer" y "Deshacer".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas