Saltar al contenido

copiar y pegar con VBA en excel

publicado

hola buen día

Estoy programando en excel con Vba y tengo una duda, el ejemplo es el siguiente

estoy trabajando con dos libros en excel y en un tercer libro tengo que consolidar la información de los otros dos libros, quiero crear una macro que me tome los valores de la siguiente forma

libro 1

[TABLE=class: grid, width: 500]

[TR]

[TD][/TD]

[TD]cola[/TD]

[TD]colb[/TD]

[TD]colc[/TD]

[/TR]

[TR]

[TD]flia1[/TD]

[TD]a[/TD]

[TD] dip[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila2[/TD]

[TD]b[/TD]

[TD]dip[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila3[/TD]

[TD]c[/TD]

[TD]dip[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila4[/TD]

[TD]d[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila5[/TD]

[TD]e[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila6[/TD]

[TD]f[/TD]

[TD]dip[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila7[/TD]

[TD][/TD]

[TD][/TD]

[TD][/TD]

[/TR]

[TR]

[TD]fila8[/TD]

[TD][/TD]

[TD][/TD]

[TD][/TD]

[/TR]

[/TABLE]

libro 2

[TABLE=class: grid, width: 500]

[TR]

[TD][/TD]

[TD]cola[/TD]

[TD]colb[/TD]

[TD]colc[/TD]

[/TR]

[TR]

[TD]flia1[/TD]

[TD]g[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila2[/TD]

[TD]h[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila3[/TD]

[TD]i[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila4[/TD]

[TD]g[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila5[/TD]

[TD]k[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila6[/TD]

[TD]l[/TD]

[TD]dip[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD][/TD]

[TD][/TD]

[TD][/TD]

[TD][/TD]

[/TR]

[/TABLE]

libro 3

[TABLE=class: grid, width: 500]

[TR]

[TD][/TD]

[TD]cola[/TD]

[TD]colb[/TD]

[TD]colc[/TD]

[/TR]

[TR]

[TD]flia1[/TD]

[TD]a[/TD]

[TD] dip[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila2[/TD]

[TD]b[/TD]

[TD]dip[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila3[/TD]

[TD]c[/TD]

[TD]dip[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila4[/TD]

[TD]d[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila5[/TD]

[TD]e[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila6[/TD]

[TD]f[/TD]

[TD]dip[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila7[/TD]

[TD]g[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila8[/TD]

[TD]h[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila 9[/TD]

[TD]i[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila10[/TD]

[TD]j[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila11[/TD]

[TD]k[/TD]

[TD]no[/TD]

[TD]prop[/TD]

[/TR]

[TR]

[TD]fila12[/TD]

[TD]l[/TD]

[TD]dip[/TD]

[TD]prop[/TD]

[/TR]

[/TABLE]

es como si fuera a copiar y pegar la información de los dos primeros libros en el tercero, pero tengo que tener en cuenta que no se me puede perder información como en el libro uno la fila 7 y 8 están vacías el el libro 3 puedo utilizar esas filas(7 y 8) para pegar desde ahí la información de la fila 1 del libro 2

de antemano agradezco su colaboración

Featured Replies

publicado

Hola:

Pruebe con esta macro:


'
Sub Juntar()

Hoja3.Cells.Clear
Uf1 = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
Uf2 = Hoja2.Range("A" & Rows.Count).End(xlUp).Row
Hoja1.Range("A1:C" & Uf1).Copy Hoja3.Range("A1")
Hoja2.Range("A1:C" & Uf2).Copy Hoja3.Range("A" & Uf1 + 1)

End Sub

[/CODE]

Saludos

publicado
  • Autor

Muchas gracias el código es justo lo que necesitaba.

Tu me podrías explicar un poco los comandos, hasta ahora estoy comenzando a programar en vba y hay algunos comandos que no entiendo muy bien.

muchas gracias

- - - - - Mensaje combinado - - - - -

pregunto como funciona el codigo ya que deseo adicionar mas hojas y al adicionarla no se como llamar esta función sin que me sobre escriba el valor en una fila anteriormente copiada. no entiendo bien esta parte del codigo

Hoja1.Range("A1:C" & Uf1).Copy Hoja3.Range("A1") Hoja2.Range("A1:C" & Uf2).Copy Hoja3.Range("A" & Uf1 + 1)Hoja4.Range("A1:C" & Uf3).Copy Hoja3.Range("A" & Uf2 + 1 )

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.