Macro para Excel Copiar y Pegar hasta encontrar 1ra celda vacía

Solicito su colaboración para resolver un problema de copiar y pegar con una macro para excel.

La macro deberá hacer los siguiente.

La hoja puede ser “X, Y o Z”

  • Seleccionar el rango J10:P10
  • Copiar el contenido de ese rango.
  • Ir a B10
  • Desde esa ubicación empezar a pegar el contenido del rango copiado (J10:P10) y detenerse hasta encontrar la primera celda vacía.

La intentar donde se ubicara para empezar el pegado contiene datos, la idea es sustituir esa información por información actualizada que viene del rango J10:P10.

Espero haber podido explicar mi solicitud y agradezco de antemano cualquier propuesta de solución.

2 respuestas

Respuesta
1

[Hola

¿Al menos intentaste empezar usando la grabadora de macros?

Comentas

Abraham Valencia

Estimado experto

Gracias por responder, descarte esa opción porque el rango de datos donde necesito pegar la nueva información es variable, por eso necesito que vaya pegando la información línea por línea hasta que encuentre la primer celda vacía que no siempre sera en la misma posicion. A veces mi tabla tendrá más registro y a veces menos al momento de correr la macro.

Saludos.

¿

Podrías por favor evaluar donde esta el error? Estoy intentando con esto pero no corre.

Gracias de nuevo.

Sub Cambia_Contenido()

  Application.ScreenUpdating = False

Sheets("Sheet1").Select

Range("J10:P10").Select

Selection.Copy

    Sheets("Sheet1").Select

    Range("B10").Select

While ActiveCell.Value <> ""

 ActiveCell.PasteSpecial xlPasteValues

Wend      

        Application.CutCopyMode = False

    Range("A1").Select

    Application.ScreenUpdating = True

End Sub

No estoy seguro de haberte entendido pero intenta así:

Sub Cambia_Contenido()
Dim UltimaFila As Long
Application.ScreenUpdating = False
Let UltimaFila = Sheets("Sheet1").Cells(Rows.Count, 2).End(xlUp).Row
Sheets("Sheet1").Range("J10:P10").Copy
Sheets("Sheet1").Range("B" & UltimaFila + 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Comentas

Abraham Valencia

Hola Abraham.

Gracias de nuevo, debido a mi urgencia por resolver intente unas modificaciones que me dieron resultado. Mi macro quedo así y funciona perfecto. Te agradezco mucho la atención a mi caso.

Saludos y que estés bien.

Application.ScreenUpdating = False
Sheets("Sheet1").Select
Range("J10:N10").Select
Selection.Copy
Sheets("Sheet1").Select
Range("B10").Select
Do Until ActiveCell = ""
ActiveCell.PasteSpecial xlPasteValues
ActiveCell.Offset(1, 0).Select
Loop
Application.CutCopyMode = False
Range("A1").Select
Application.ScreenUpdating = True
End Sub

Excelente. Saludos]

Abraham Valencia

Respuesta
1

Fíjate en estos ejemplos que te orientarán

https://youtu.be/DV7taRXLEzY

https://youtu.be/_XegDeHiORc

Para crear un bucle puedes usar for entonces determinas la ultima fila con datos o primarea vacía su sumas uno así uf+1

For x = 1 to uf

Tu macro 

Next x

Te paso unos ejemplos con bucle For y otros para recorrer celdas con While Wend que también sirve para ir hasta la ultima fila facia, tambien puedes usar Do Loop While

Mira:

https://youtu.be/0UuR_zRQCB4 este ejemplo tiene varias veces el uso de for fijate

https://youtu.be/Zz_dpviPzKs

https://youtu.be/Oukw65zwnzE

https://youtu.be/kiXoJ0hSblA

https://youtu.be/afLArBjJyz8

https://youtu.be/LkiQIzCsWP8

https://youtu.be/FsqpNECrQqc

https://youtu.be/qtkrkNVxsuQ

Gracias por responder.

He estado intentando con esta macro pero algo falla que no logro hacerla funcionar. No se donde esta el error.

Sub Cambia_Contenido()

  Application.ScreenUpdating = False

Sheets("Sheet1").Select

Range("J10:P10").Select

Selection.Copy

    Sheets("Sheet1").Select

    Range("B10").Select

While ActiveCell.Value <> ""

 ActiveCell.PasteSpecial xlPasteValues

Wend      

        Application.CutCopyMode = False

    Range("A1").Select

    Application.ScreenUpdating = True

End Sub

Pero que tiene te sale un error cual

No sale error pero no muestra los datos correctos

En este ultimo caso estás reverenciando mal los datos celdas hojas etc etc es un error de referencia mira este video, muestra como hacer referencias correctas.

Depura la macro ejecutala paso a paso con F8 y fíjate los valores que va tomando así te darás cuenta exactamente que es lo que no está funcionando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas