Generar asientos con excel vba

Para Dante Amor

Dante necesito de tu apoyo otra vez, tengo 2 hojas y necesito generar asientos.

Hoja1(Base) estan ordenados por meses en este caso de mayo hasta octubre.

Hoja2(asiento contables)

Y necesito que genere los asiento con los encabezados de Mayo a Octubre.

-El código, mes y los valores de la columna DEBE se captura de la hoja "Base" y el resto como "CTS-Provisión Mensual" y otros lo tengo que agregar al código.

- En la fila del código 4151 en la columna del HABER tengo que poner la suma de la columna DEBE en este caso 541.66.

1 respuesta

Respuesta
1

No entendí, ¿los datos en la hoja2 ya existen y solamente hay que hacer sumas?

¿O qué datos existen en la hoja2 y qué hay que hacer?

¿Para qué la hoja1?

Dante gracias por tu disposición, en la hoja2(Asientos contables) es una muestra del resultado que tiene que crear la macro.

la macro tiene  que recorrer en la hoja1(Base) las columnas (B)CÓDIGO, (C)MES y (E)TOTAL MES.

y pasar los datos a mi plantilla Hoja2 (Asientos contables) que te muestro

 realizando el consolidado por mes en este caso de MAYO a OCTUBRE. en mi ejemplo esta de mayo y junio.

como observas en la DENOMINACIÓN hay datos que no están en la hoja1(Base) eso tengo que agregar en la macro.

por ejemplo

CTS-Provisión Mensual

compensación por tiempo de servicios 

Haber si esta vez fui claro amigo Dante

Sigo sin entender.

En la hoja1 tienes mayo, el cod 62911 con 3 importes. En la hoja2 tienes 3 registros con el cod 62911 y luego otros 3 registros con los códigos 4151, 94 y 791, ¿eso registros son constantes o cómo?

Explícame paso por paso, una imagen dice mucho, pero de esa forma no entiendo.

si Dante, los códigos 4151, 94 y 791 son registros constantes para cada mes.

te hago otro ejemplo.

recorre la hoja1 la columna "C" verificando cuantos datos hay del primer mes; en este caso encontró 3 registros con el mes de MAYO, y copia los  datos de la columna código, mes  y total mes a la hoja2.

el resto de los datos será constante para todos los meses, agregando solo la suma de los importes

así tendrá que generar para el resto de los meses saludos!

Envíame tu archivo para copiar el formato

Dante buenas tardes

te envié el archivo 

Te anexo la macro

Sub Generar_Asientos()
'---
'   Por.Dante Amor
'---
    '
    Application.ScreenUpdating = False
    Set h1 = Sheets("Base")
    Set h2 = Sheets("Asientos Contables")
    Set h3 = Sheets("formato")
    '
    h2.Range("G2:J" & Rows.Count).Clear
    h2.Columns("I:J").NumberFormat = "#,##0.00"
    h3.Range("G3:J4").Copy h2.Cells(3, "G")
    ant = h1.Cells(4, "C")
    h2.Cells(3, "I") = ant
    j = 5
    For i = 4 To h1.Range("B" & Rows.Count).End(xlUp).Row + 1
        If ant <> h1.Cells(i, "C") Then
            h2.Cells(j, "G") = "4151"
            h2.Cells(j, "H") = "Compensación por tiempo de servicios"
            h2.Cells(j, "J") = saldo
            h2.Cells(j + 1, "H") = "x/x Por la provisión mensual de CTS"
            h2.Cells(j + 2, "G") = "94"
            h2.Cells(j + 2, "H") = "GASTOS ADMINISTRATIVOS"
            h2.Cells(j + 2, "I") = saldo
            h2.Cells(j + 3, "G") = "791"
            h2.Cells(j + 3, "H") = "Cargas imputables a cuentas de costos y de gastos"
            h2.Cells(j + 3, "J") = saldo
            h2.Cells(j + 4, "H") = "x/x Por el destino de la cuenta 62."
            If h1.Cells(i, "C") = "" Then
                Application.ScreenUpdating = True
                MsgBox "Fin"
                Exit Sub
            End If
            h3.Range("G3:J4").Copy h2.Cells(j + 6, "G")
            h2.Cells(j + 6, "I") = h1.Cells(i, "C")
            saldo = 0
            j = j + 8
        End If
        h2.Cells(j, "G") = h1.Cells(i, "B")
        h2.Cells(j, "H") = "CTS - Provisión Mensual"
        h2.Cells(j, "I") = h1.Cells(i, "E")
        saldo = saldo + h1.Cells(i, "E")
        j = j + 1
        ant = h1.Cells(i, "C")
    Next
    Application.ScreenUpdating = True
End Sub

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas