Copiar datos de una hoja y pegarlos en otra

Tengo una problema que no he podido resolver tengo dos horas una que se llama salida que es donde capturan salida de productos con valores en la COLUMNA "A" id y siguen datos hasta llegar COLUMNA "I" que se tiene total, todos los meses copiamos todas las salidas y lo pegamos en una hoja que se llama db esta hoja contiene las mismas columnas pero lo difícil es que la macro busque cual es el ultimo elemento de esa hoja DB y comience a copiar el primer elemento de la hoja salida en la ultima de la siguiente alguien me puede apoyar

1 respuesta

Respuesta
2

H o l a:

Te anexo la macro. Cambia en la macro fila = 2 por el número de fila donde empiezan tus datos de la hoja salida

Sub Copiar()
'Por.Dante Amor
    fila = 2    'fila inicial de la hoja "salida
    Set h1 = Sheets("salida")
    Set h2 = Sheets("DB")
    u1 = h1.Range("A" & Rows.Count).End(xlUp).Row
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Range("A" & fila & ":I" & u1).Copy h2.Range("A" & u2)
    MsgBox "Registros copiados"
End Sub

':)
':)

Hola buenas tardes ya quise correr la macro y me marca error en la línea h1.range no se si tiene que ver que lo tengo en una tabla, y lo creo que omití algo, que es que necesito que se borre de la hoja salida los datos que copiados

¿Qué error te dice?

Cambia "salida" y "DB" por los nombres de tus hojas.

Sub Copiar()
'Por.Dante Amor
    fila = 2    'fila inicial de la hoja "salida
    Set h1 = Sheets("salida")
    Set h2 = Sheets("DB")
    u1 = h1.Range("A" & Rows.Count).End(xlUp).Row
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Range("A" & fila & ":I" & u1).Copy h2.Range("A" & u2)
    h1.Range("A" & fila & ":I" & u1).ClearContents
    MsgBox "Registros copiados"
End Sub


':)
':)

Antes que nada Muchas Gracias por el tiempo que te tomas en apoyarme este es el error dice que no tiene el mismo tamaño o forma distinto

Mencionaste que ambas hojas tienen las mismas columnas.

Revisa si tienes celdas combinadas, quita esas celdas combinadas y vuelve a probar.

Ya revise y no tengo nada de eso cambie formatos y me sigue dando lo mismo, si gustas te envío mi archivo para que me apoyes 

Mi correo [email protected]

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

H o l a:

Recomendaciones, cuando trabajos con base de datos no es necesario que pongas los registros en una tabla, la tabla es para darle una presentación a los datos, pero en tu caso solamente los estás almacenando.

Otra recomendación, si vas a utilizar una tabla no aumentes la tabla manualmente, eso hace crecer tu archivo. Las tablas van ajustándose automáticamente cada que agregas un registro.

En tu caso, creciste la tabla hasta la última fila de la hoja de excel, es por eso que no se podía pegar.

Si tuvieras rangos la macro funcionaría sin problemas.

Te anexo la macro para que funcione con tus tablas.


Sub copiar_datos()
'Por.Dante Amor
    fila = 2    'fila inicial de la hoja "salida
    Set h1 = Sheets("Salidas")
    Set h2 = Sheets("db")
    u1 = 2
    Do While h1.Cells(u1, "A") <> ""
        u1 = u1 + 1
    Loop
    u1 = u1 - 1
    u2 = 2
    Do While h2.Cells(u2, "A") <> ""
        u2 = u2 + 1
    Loop
    'u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Range("A" & fila & ":I" & u1).Copy h2.Range("A" & u2)
    h1.Range("A" & fila & ":I" & u1).ClearContents
    MsgBox "Registros copiados"
End Sub

':)
':)

¡Gracias! Muchas Gracias por los concejos las tablas si las necesito por que uso otro archivo para informes que usa PorwerPivot, que esta enlazado a power BI, para presentar esos datos  de manera web pero tomare todos tus consejos para mejorar la hoja Muchas Gracias no sabes cuanto me ayudaste 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas