Macro

Hola;
Tengo grabada una macro muy sencilla en excel, simplemente hay que cortar 3 celdas en una fila de la hoja 1 y pegarlas en una fila de la hoja 2. Luego eliminar la fila de la hoja 1.
El problema es que siempre corta el nº de fila de la hoja 1 sobre el que he grabado la macro y yo quiero que corte la fila que haya seleccionado antes de ejecutar la macro.
En la hoja 2, pasa lo mismo, siempre se pega la información en el mismo nº de fila y yo quiere que se pegue en la primera fila que haya vacía.
Te adjunto la composición de la macro
Range("A317:C317").Select
Selection.Cut
Sheets("Hoja 2").Select
Range("A100").Select
ActiveSheet.Paste
Range("C104").Select
Sheets("Hoja 1").Select
Rows("317:317").Select
Selection.Delete Shift:=xlUp
Range("B318").Select
End Sub
Espero haberme explicado bien y que me puedas echar una mano, gracias por tu tiempo.

2 respuestas

Respuesta
1
Si es siempre el rango que tenés seleccionado, podes partir directamente de la segunda fila
Sub Macro1()
Selection.Cut
Sheets("Hoja 2").Select
Range("A100").Select
ActiveSheet.Paste
Range("C104").Select
Sheets("Hoja 1").Select
Selection.EntireRow.Delete Shift:=xlUp
End Sub
Te la modifico ligeramente
El "problema" inicial depende de como tengas hecha la selección (por lo que comentas, estás teniendo seleccionada toda la fila); respecto al segundo punto te paso una modificación al código
Sub Macro1()
Selection.Cut
Sheets("Hoja 2").Select
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Hoja 1").Select
Selection.EntireRow.Delete Shift:=xlUp
End Sub
Hola, gracias por tu respuesta.
He ejecutado tu macro y casi funciona del todo bien, te explico:
En la hoja 1 solo se corta la fila que tengo seleccionada (es perfecto), el problema es que se corta la fila entera y se pega en la hoja 2. Yo necesito que solo se peguen en la hoja 2, las 3 primeras celdas y se elimine la linea de la hoja 1.
El problema que hay con la hoja 2 es que la información siempre se pegua en la fila nº 100 y yo necesito que se pegue en la primera fila vacía que encuentre
No se si me podrás ayudar nuevamente. Muchas gracias de todos modos
Saludos / Paco
En realidad esta macro borra; si querés que elimine habría que modificarla ligeramente
Sub Macro2()
Range(Cells(ActiveCell.Row, 6), Cells(ActiveCell.Row, 12)).Clear
End Sub
Respuesta
1
Ayer te envié el código para esto, pero parece que con esto del cambio de la página han tomado un backup viejo.
Me puedes confirmar por favor si la recibiste, sino para enviarla nuevamente.
Hola, lo he recibido, pero ayer no me di cuenta, era fiesta local en mi ciudad. No obstante no te preocupes ya tenía resuelto el problema. Pero muchas gracias. Por tu interés.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas