Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/01/2007, 03:25
Avatar de 3pies
3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Re: limpiar hoja y deseleccionar celdas copiadas

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

Última edición por 3pies; 18/01/2007 a las 05:44