Macro copiar más de un rango variable

Antes que todo saludarlos y agradecerles por siempre estar dispuestos a ayudar..

Tengo el siguiente problema tengo datos en "Hoja1" en el rango BB6:BB11 pero cada vez voy poniendo más datos ej BC6:B611 luego será BD6:BD11 etc.. Y deseo copiarlos a la "Hoja2" en el rango D6:D11 (este rango no varía, siempre quiero que queden ahí los datos) quiero que cada vez que agregue datos copie solamente los últimos.. Que vaya reemplazando el anterior..

Dentro de la misma hoja también tengo BB16:BB21 (varían al igual que el anterior) y estos pegarlos en (Hoja2) rango D14:D19. Y finalmente tengo BB27:BB32 (varían igual que el caso anterior) y pegarlos en (Hoja2) rango D22:D27.

Respuesta
1

¿Cuándo quieres que se actualice la hoja2? Vos decís "cada vez que agregue datos", pero faltaría saber como funciona "cada vez". ¿Lo quieres hacer con una macro? ¿Apretando un botón? ¿O quieres que se haga automáticamente cada vez que tocas una celda? ¿O quieres hacerlo con una fórmula en hoja 2 que traiga el ultimo dato?

Me gustaría ver la factibilidad de asociar la macro a un botón, al presionarlo busque los últimos datos. Muchas gracias por tu tiempo.

Asumo que a la derecha no hay nada y que son datos y no fórmulas.

Sub PasarAHoja2()
Sheets("Hoja1").Activate
Range(Range("xfd6").End(xlToLeft), Range("xfd6").End(xlToLeft).Offset(5, 0)).Copy (Sheets("Hoja2").Range("d6"))
Range(Range("xfd16").End(xlToLeft), Range("xfd16").End(xlToLeft).Offset(5, 0)).Copy (Sheets("Hoja2").Range("d14"))
Range(Range("xfd27").End(xlToLeft), Range("xfd27").End(xlToLeft).Offset(5, 0)).Copy (Sheets("Hoja2").Range("d22"))
End Sub

Estimado javier, comento que funciona casi perfecto.. el problema es que dentro de los datos de la hoja 1 hay algunos que si tienen formula y esos al pasarlos a la hoja 2 se indefinen.. existe algun método para decirle que todo lo que pase a la hoja 2 lo pegue como VALOR.?

Muchas gracias por tu ayuda

Si, claro, pero como no especificaste, yo asumí que no había fórmulas. Ten en cuenta que hay muchísimas maneras de hacer las cosas y algunas sirven para unas cosas.

En general, deberías tratar de hacer preguntas más especificas, yendo al grano siempre, pero dando los detalles relevantes. De otra manera, tengo que suponerlos.

Acá te paso una nueva version.

Sub PasarAHoja2()
Sheets("Hoja1").Activate
Range(Range("xfd6").End(xlToLeft), Range("xfd6").End(xlToLeft).Offset(5, 0)).Copy
Sheets("Hoja2").Range("d6").PasteSpecial Paste:=xlValues
Range(Range("xfd16").End(xlToLeft), Range("xfd16").End(xlToLeft).Offset(5, 0)).Copy
Sheets("Hoja2").Range("d14").PasteSpecial Paste:=xlValues
Range(Range("xfd27").End(xlToLeft), Range("xfd27").End(xlToLeft).Offset(5, 0)).Copy
Sheets("Hoja2").Range("d22").PasteSpecial Paste:=xlValues
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas