Foros del Web » Soporte técnico » Ofimática »

limpiar hoja y deseleccionar celdas copiadas

Estas en el tema de limpiar hoja y deseleccionar celdas copiadas en el foro de Ofimática en Foros del Web. con que comando o con que instruccion para programar en una macro de excel puedo limpiar toda una hoja de excel?... es decir... que la ...
  #1 (permalink)  
Antiguo 17/01/2007, 18:30
 
Fecha de Ingreso: agosto-2004
Mensajes: 296
Antigüedad: 19 años, 8 meses
Puntos: 0
limpiar hoja y deseleccionar celdas copiadas

con que comando o con que instruccion para programar en una macro de excel puedo limpiar toda una hoja de excel?... es decir... que la hoja activa que en blanco, sin datos.....

y

mediante 'Selection.EntireRow.Copy' estoy copiando toda una fila.... y al final de mi macro... no se como hacerle para que la fila que se copio, se deseleccione, porque la ultima fila que se copio, queda punteada en el borde... entonces, como puedo hacer para quitarle la seleccion de copiado a la fila????

gracias por la ayuda
  #2 (permalink)  
Antiguo 18/01/2007, 03:25
Avatar de 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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 11:50.