¿Como elimino los datos que copie de una hoja a otra? Con macros

Tengo una macro que me copia los datos de una hoja a otra, pero necesito que esos datos que copio, los elimine de la hoja, ¿cómo agrego ese código en la macro?

MACRO:

Sub Copiando()
Dim CeldaEncontrada As Range
Dim nFila As Long
Dim Celdai$, Celdaf$
Set CeldaEncontrada = Sheets("Hoja1").Cells.Find("eltítuloexactoaquí")
nFila = (CeldaEncontrada.Row) + 1
Celdai = Range("A" & nFila).Address: Celdaf = Range("A" & nFila).SpecialCells(xlCellTypeLastCell).Address
Sheets("Hoja1").Range(Celdai & ":" & Celdaf).Copy Sheets("Hoja2").Range("A1")
Set CeldaEncontrada = Nothing
End Sub

2 Respuestas

Respuesta
1

Si comparte una copia de su archivo para ver la manera de ayudarle.

como se lo puedo mandar?

como se lo puedo mandar?

Puede subirlo a googledrive con su cuenta de gmail y compartir el enlace.

De acuerdo a lo que comento Abraham Valencia agregando esa línea limpia los datos de la hoja que contiene los datos originales.

Sub Copiando()
Dim CeldaEncontrada As Range
Dim nFila As Long
Dim Celdai$, Celdaf$
Set CeldaEncontrada = Sheets("Procesos Autorizados").Cells.Find("Proyecto")
nFila = (CeldaEncontrada.Row) + 1
Celdai = Range("A" & nFila).Address: Celdaf = Range("A" & nFila).SpecialCells(xlCellTypeLastCell).Address
Sheets("Procesos Autorizados").Range(Celdai & ":" & Celdaf).Copy Sheets("Procesos Pendientes").Range("A1")
Sheets("Procesos Autorizados").Range(Celdai & ":" & Celdaf).ClearContents
     Set CeldaEncontrada = Nothing
End Sub
Respuesta
1

[Hola

Antes del último Set, agrega la siguiente línea:

Sheets("Hoja1").Range(Celdai & ":" & Celdaf).ClearContents

Me genera un error justo en esa línea de la macro, lo único que cambie es que en lo siguiente, no debe ser "proyecto" sino, "Procesos Pendientes de Autorizar en el Período Seleccionado", pero al ejecutarlo, me genera error esta ultima línea:

Set CeldaEncontrada = Sheets("Procesos Autorizados").Cells.Find("Proyecto")

Si dejo lo anterior como "proyecto" me funciona perfecto, pero cuando quiero cambiar lo que dice la celda a encontrar, me genera el error

El gran problema es que estás cometiendo un error que siempre recomendamos no se haga: Estás usando celdas combinadas. Eso, para todos los caso, lo único que logra es que se compliquen las cosas. ¿Alternativas? Deberías "descombinar" TODAS las celdas que tienes combinada o lograr lo que requieres será bastante más complicado y requiere un tiempo que no necesariamente tenemos todos los que ayudamos por aquí ad honorem.

Ok ok gracias

En esa misma macro, ¿puedo agregar un código que me mantenga el formato exacto y ancho de columnas pegados en la otra hoja?

¿Has usado la grabadora de macros? Sugiero que la actives y vayas probando con las opciones de copiar y "Pegado especial" y veas los códigos que se van generando.

Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
 ActiveSheet.Paste

Pero tengo que cambiar "Selection", que puedo anteponer a "PasteSpecial"?

Un ejemplo:

Sheets("Hoja1"). Range("A1:A10"). Copy
Sheets("Hoja3").Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
Sheets("Hoja3").Range("A1").PasteSpecial Paste:=xlPasteAllUsingSourceTheme

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas