Para quitarle la selección punteada añade esta línea después de haber hecho el pegado (del copiar y pegar):
Código:
Application.CutCopyMode = False
Aquí van dos ejemplos completitos de borrado de celdas (con y sin borrado de formatos)...
Respecto a como eliminar todo
incluyendo datos, y formato de las celdas, hay que tener mucho cuidado, porque no se podrá deshacer lo borrado. Evidentemente, si tenemos un botón para asociar un macro, también se borrará, así que mucho cuidado.
Como creo que es importante el tema de borrado, es aconsejable utilizar una alerta, como en el ejemplo, que lo que hace, es pedir confirmación del borrado:
Código:
Sub Elimiar_todo_el_contenido_y_los_formatos_de_la_hoja_activa_()
'Ocultamos todos los pasos que va a hacer el macro, para que quede más "potito"
Application.ScreenUpdating = False
'Seleccionamos la hoja activa
ActiveSheet.Select
'Pedimos confirmación de que realmente deseamos borrar
'todo el contenido de la hoja, ¡¡¡incluyendo los formatos de las celdas!!!
mensaje = MsgBox(Chr(13) + " Se borrarán todos los datos de la hoja de cálculo, " + _
Chr(13) + " incluyendo el formato de las celdas. " + _
Chr(13) + Chr(13) + " ¿Estás seguro de querer continuar?. " + _
Chr(13) + Chr(13), vbYesNo, " INFORMACIÓN")
'Si se cliquea en el "Sí", que elimine todo
'(si se cliquea en "No", no hará nada, es decir, no borrará nada)
If mensaje = vbYes Then
'"Fichamos" la celda donde estamos, para volver a ella luego
celda_donde_estamos = ActiveCell.Address
'Seleccionamos todas las celdas de la hoja
Cells.Select
'Borramos la selección efectuada, incluyendo los formatos de celda
Selection.Delete Shift:=xlUp 'esta línea cambia, si solo queremos borrar el contenido
'Volvemos donde estábamos
Range(celda_donde_estamos).Select
End If
'Volvemos a activar la opción de mostrar el procedimiento
Application.ScreenUpdating = True
End Sub
Si solo queremos borrar el contenido, manteniendo los formatos de celda:
Código:
Sub Elimiar_todo_el_contenido_pero_manteniendo_los_formatos_de_la_hoja_activa_()
'Ocultamos todos los pasos que va a hacer el macro, para que quede más "potito"
Application.ScreenUpdating = False
'Seleccionamos la hoja activa
ActiveSheet.Select
'Pedimos confirmación de que realmente deseamos borrar
'todo el contenido de la hoja
mensaje = MsgBox(Chr(13) + " Se borrarán todos los datos de la hoja de cálculo, " + _
Chr(13) + " incluyendo el formato de las celdas. " + _
Chr(13) + Chr(13) + " ¿Estás seguro de querer continuar?. " + _
Chr(13) + Chr(13), vbYesNo, " INFORMACIÓN")
'Si se cliquea en el "Sí", que elimine todo
'(si se cliquea en "No", no hará nada, es decir, no borrará nada)
If mensaje = vbYes Then
'"Fichamos" la celda donde estamos, para volver a ella luego
celda_donde_estamos = ActiveCell.Address
'Seleccionamos todas las celdas de la hoja
Cells.Select
'Borramos la selección efectuada, incluyendo los formatos de celda
Selection.ClearContents 'esta línea es la que hemos cambiado con respecto al macro anterior
'Volvemos donde estábamos
Range(celda_donde_estamos).Select
End If
'Volvemos a activar la opción de mostrar el procedimiento
Application.ScreenUpdating = True
End Sub
Salu2
Edito Aviso: Esos macros borran las fórmulas que tengas en la hoja de cálculo, así que es peligroso hacer uso de esos macros, sin estar seguro de lo que se hace. No obstante, lo que pedías era eso: "limpiar toda una hoja de excel". Si quieres salvaguardar las fórmulas, tendrás que seleccionar las filas con datos a borrar, en lugar de seleccionar todo, como así figura en las macros.
De nada