Pasar datos a una plantilla automáticamente_para la parte de los productos.

Para pasar automáticamente los datos según una plantilla, ahora toca la parte de los productos.

El encabezado ya está bien.

1 respuesta

Respuesta
1

Actualizo la macro y la posteo para que hagas tus pruebas.

Te anexo la macro para los productos:

Sub InvoiceNumber()
'Por.Dante Amor
    Set h1 = Sheets("datos")
    Set h2 = Sheets("ej1")
    Set h3 = Sheets("plantilla")
    h2.Cells.Clear
    '
    j = 1
    i = 2
    n = 0
    '
    ant = h1.Cells(2, "F")
    encabezado h1, h2, h3, i, j
    For i = 2 To h1.Range("F" & Rows.Count).End(xlUp).Row
        If ant <> h1.Cells(i, "f") Then
            n = 0
            encabezado h1, h2, h3, i, j
        End If
        ant = h1.Cells(i, "F")
        If h1.Cells(i, "P") = "Duty Charges" Then
            duty h1, h2, h3, i, j, n
        Else
            n = n + 1
            productos h1, h2, h3, i, j, n
        End If
    Next
    h2.Select
    MsgBox "Proceso terminado", vbInformation, "PLANTILLA"
End Sub
Sub encabezado(h1, h2, h3, i, j)
'Por.Dante Amor
    h3.Rows(1 & ":" & 3).Copy h2.Rows(j)
    '
    h2.Cells(j, "B") = h1.Cells(i, "F")  'invoice num
    h2.Cells(j, "C") = h1.Cells(i, "J")  'invoice date
    h2.Cells(j, "D") = h1.Cells(i, "G")  'CURRENCY
    h2.Cells(j, "E") = h1.Cells(i, "AB") 'PO
    h2.Cells(j, "F") = h1.Cells(i, "O")  'PAYMENT_TERM
    j = j + 1
    h2.Cells(j, "B") = h1.Cells(i, "A")  'BILL_TO_CUSTOMER_NAME
    h2.Cells(j, "C") = h1.Cells(i, "Y")  'VAT NUMNER PURCHASING COMPANY
    j = j + 1
    h2.Cells(j, "B") = h1.Cells(i, "Z")  'SELLER
    h2.Cells(j, "C") = h1.Cells(i, "AA") 'SELLER VAT
    j = j + 1
End Sub
Sub productos(h1, h2, h3, i, j, n)
'Por.Dante Amor
    h3.Rows(4 & ":" & 6).Copy h2.Rows(j)
    '
    h2.Cells(j, "B") = n                 'consecutivo
    h2.Cells(j, "C") = h1.Cells(i, "P")  'DESCRIPTION
    j = j + 1
    h2.Cells(j, "C") = h1.Cells(i, "K")  'QUANTITY_INVOICED
    h2.Cells(j, "D") = h1.Cells(i, "M")  'EXTENDED_AMOUNT
    h2.Cells(j, "K") = h1.Cells(i, "V")  'TAX_TOTAL
    j = j + 2
End Sub
Sub duty(h1, h2, h3, i, j, n)
'Por.Dante Amor
    h3.Rows(19 & ":" & 21).Copy h2.Rows(j)
    '
    h2.Cells(j, "B") = n                 'consecutivo
    'h2.Cells(j, "C") = h1.Cells(i, "P")  'DESCRIPTION
    j = j + 1
    h2.Cells(j, "C") = h1.Cells(i, "K")  'QUANTITY_INVOICED
    h2.Cells(j, "D") = h1.Cells(i, "M")  'EXTENDED_AMOUNT
    h2.Cells(j, "K") = h1.Cells(i, "V")  'TAX_TOTAL
    j = j + 2
End Sub

Saludos.Dante Amor

Tuviste oportunidad de revisar esta parte.

No olvides valorar la respuesta,

Queda pendiente lo del pie de la plantilla en una nueva pregunta

Tengo pendiente de ver la parte de los impuestos, y eso tengo que verlo con más calma.

El resto parece que está bien, pero ya te digo...

Saludos y muchas gracias!

Podrías valorar la respuesta, y para la parte de impuestos, cuando tengas definidas las nuevas columnas, creas una nueva pregunta.

Hola,

He cambiado la columna de origen para los impuestos, en vez de TAX_TOTAL (columna V) es TAX_PERCENTAGE (columna U).

Aquí habría que hacer tax_total/extended_amount si se puede hacer autmáticamante, mejor, sino ya lo calculo en el excel.

También he sombreado Extended_amount y he puesto el color en unit_selling_price, que por error lo puse mal, disculpa.

¿Se podría modificar?

Te he enviado el excel por correo. He estado tentado de intentar modificarlo yo mismo pero por si acaso...

Te envío la respuesta en tu pregunta de impuestos.

Mientras podrías valorar esta respuesta por la parte de productos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas