Macro que copie datos de una fila fija de una hoja excel a otra hoja pero al final de los datos

Hola, necesito ayuda para lo siguiente:

Tengo datos en una fila de la hoja "Macro" desde D3 a S3 que irán cambiando según los vaya introduciendo, pero siempre estarán en ese rango de la fila 3. Quiero una macro que los lleve otra hoja del mismo libro, que se llama "PtesNueva", y colocarlos como valores en el rango A2 a P2. Quiero que la siguiente vez que ejecute la macro me lleve los valores desde el mismo sitio (D3:S3 en "Macro") a la siguiente fila vacía de "PtesNueva", que esta vez sera en A3 a P3, la siguiente ejecución en A4 a P4 y así sucesivamente que los coloque en la primera fila vacía acumulando una lista. He hecho una macro con el asistente pero siempre me los lleva a la misma fila machacando los que ya tenia. Gracias por vuestra ayuda

1 respuesta

Respuesta
1

Espero que esto te sea de utilidad:

Sub copiar()
Application.ScreenUpdating = False
Sheets("Macro").Select
Range("D3:S3").Select
Selection.Copy
Sheets("PtesNueva").Select
ActiveSheet.Range("A2").Activate
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Activate
Loop
ActiveSheet.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Hola experto, y muchas gracias por tu ayuda.

He ejecutado la macro y me da error "1004 en tiempo de ejecución: Error en el método PasteSpecial de la clase Worksheet".

Me señala la sentencia. ActiveSheet.PasteSpecial xlPasteValues, he intentando poner "=" después de Special pero da el mismo error y si finalizo el depurador me copia sólo dos datos (el cuarto y el séptimo de izquierda a derecha). Te aclaro que necesito copiar todo el rango de la hoja "Macro" aunque haya alguna celda vacía.

No te lo había dicho pero por si tiene algo que ver, tengo Excel 2010. Muchas gracias y un saludo

Te envío nuevamente la macro, en cualquier caso, te comparto también un el libro donde la probé.

Sub copiar()

Application.ScreenUpdating = False

Sheets("Macro").Select
Range("D3:S3").Select
Selection.Copy
Sheets("PtesNueva").Select

ActiveSheet.Range("A2").Activate
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Activate
Loop
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True

End Sub

Saludos.

Link al libro:

https://www.dropbox.com/s/hww3xyj29bxbkw2/Libro1.xls

Estupendo, funciona de maravilla. Te agradezco mucho tu trabajo y rapidez en esta solución que me va a ahorrar mucho tiempo. Enseguida pondré otra consulta para ver como ejecutar una serie de macros seguidas, ya que tengo las macros en una hoja asignadas a distintos botones de control y quiero poder pulsar uno solo para toda la ejecución sucesiva. Gracias de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas