Consulta Macro Pegar en hoja nueva

Consulta, Tengo un hoja en la cual cargo pedidos, puede tener tantas filas como ítems tenga el pedido.

Estoy intentando hacer una macro, que corte todas las filas de la hoja del pedido, y los acumule en una hoja "Base de datos de pedidos", uno debajo del otro, por cada pedido nuevo que hago.

Lo intente rudimentariamente "Grabando" las acciones pero no logro hacer que se copie hasta la primer fila vacía, por lo que entiendo que necesitaria código.

Respuesta
1

H o l a:

Puedes poner 2 imágenes, en la imagen 1 pon cómo está tu hoja del pedido, en la hoja2 pon cómo está tu hoja "Base de datos de pedidos". Procura que en ambas imágenes se vean las letras de las columnas y los números de filas de excel.

Mientras te preparo la macro.

Hoja de Carga de Pedido: "Pedido"

Base de datos donde acumula los pedidos secuencialmente

Nombre de Hoja: "Base"

H o l a:

En la hoja "Base" los datos no coinciden con los encabezados. A qué le hago caso, ¿a los datos o los encabezados?

Perdón, sisi, hay un error, tomar los datos

Va con la corrección

Te anexo la macro

Sub CopiarPedido()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Pedido")
    Set h2 = Sheets("Base")
    u = h2.Range("E" & Rows.Count).End(xlUp).Row
    If u = 3 Then u = 4 Else u = u + 2
    '
    If h1.[H4] = "" Then
        MsgBox "Falta el número de pedido"
        Exit Sub
    End If
    '
    If h1.[C12] = "" Then
        MsgBox "Falta el código"
        Exit Sub
    End If
    '
    h2.Cells(u, "B") = h1.[H4]                  'num pedido
    h2.Cells(u, "C") = h1.[C9]                  'Fecha
    h2.Cells(u, "D") = h1.[D9]                  'Clinte
    h2.Cells(u, "K") = h1.[G9]                  'Fec entrega
    h2.Cells(u, "L") = h1.[H9]                  'Forma entrega
    For i = 12 To h1.Range("C" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "C") <> "" Then
            h2.Cells(u, "E") = h1.Cells(i, "C") 'Código
            h2.Cells(u, "F") = h1.Cells(i, "D") 'Desc
            h2.Cells(u, "G") = h1.Cells(i, "E") 'Cantidad
            h2.Cells(u, "H") = h1.Cells(i, "F") 'Marca
            h2.Cells(u, "I") = h1.Cells(i, "G") 'Armado
            h2.Cells(u, "J") = h1.Cells(i, "H") 'Obs
            u = u + 1
        Else
            Exit For
        End If
    Next
    Application.ScreenUpdating = True
    Application.CutCopyMode = False
    MsgBox "Pedido copiado"
End Sub

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

Genio Dante, Funciona a la perfección (increíble ver esto andando después de horas y horas de leer y probar cosas sin suerte)

Me pongo demasiado exigente, pero en el mismo macro como hago para que en la hoja "Pedido" borre lo ya cargado, le sume +1 a la celda H4 (Numero de Pedido) e imprima 2 copias?

Con mucho gusto te ayudo con todas tus peticiones.

Lo de borrar es sencillo, pero son varias peticiones.

En la celda H4 no tienes un número, lo que yo veo es que tienes un texto "01-000001" y supongo que primero debe imprimir el pedido y después borrar.

Crea una nueva pregunta en el tema de microsoft excel, en el desarrollo de la pregunta escribe: "para Dante Amor"

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas