Permitir algunas acciones en una excel protegida

Quiero conocer qué eventos son los que en una hoja protegida permitan a los usuarios realizar las siguientes acciones:
Utilizar el autofiltro que ya está activado
Cambiar alto y ancho columna
Borrar e insertar lineas
Deshacer acciones

1 Respuesta

Respuesta
1
Estas son las opciones que deben estar activas al momento de proteger la hoja.
Seleccionar celdas bloqueadas
Seleccionar celdas desbloqueadas
Aplicar formato a columnas (para modificar el ancho de las columnas)
Aplicar formato a filas (para modificar el alto de las filas)
Insertar filas
Eliminar filas (NO APLICA)
Usar autofiltro
(La opción de deshacer acciones esta disponible)
No aplica eliminar filas en una fila protegida, porque sería ilógico, además de que tampoco se puede eliminar una fila insertada porque ésta toma el formato de la fila inmediatamente anterior, y ésta está protegida.
(Falta de programación de Microsoft Corporation)
Te agradezco tu ayuda que me ha servido de gran ayuda.
Te comento que aunque la hoja excel está protegida, no todas las celdas están bloqueadas por eso no hay problema con el tema de eliminar filas, porque en ellas la gente puede escribir. Lo único que me ocurre es que yo tengo una macro para que cualquier sitio en donde se escriba se haga ponga a rojo para que se reconozcan los cambios realizados por los usuarios y cuando se borra una línea se pone a rojo la que va inmediatamente inferior.
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.ProtectContents = True Then
ActiveSheet.Unprotect ("etsiig")
Target.Font.ColorIndex = 3
ActiveSheet.Protect Password:="etsiig", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True, AllowInsertingRows:=True, AllowDeletingRows:=True, AllowFiltering:=True
Else
Target.Font.ColorIndex = 3
End If
End Sub
Por otra parte no entiendo porque el botón de deshacer sólo se me activa cuando estoy escribiendo, y cuando acepto una celda pues se desactiva y de esa forma no puedo recuperar lo que había escrito ahí con anterioridad. Veo que en otras excel las celadas no bloqueadas aunque la planilla está protegida si se pueden deshacer los cambios.
Lo que sucede es que cualquier macro que realice acciones sobre cualquier hoja de cualquier libro, va a vaciar el buffer del UNDO, osea que el histórico de las acciones realizadas al libro va a desaparecer, por ende se deshabilitará la opción de deshacer.
Se deshabilita porque se supone que las acciones que realiza una macro son automáticas y dispendiosas, entonces sería ilógico que con un simple clic en el botón deshacer, se deshaga todo lo que a la macro le costo hacer (y al que realizó el código).
Lo que se me ocurre es que podrías agregarle un código adicional a tu macro para que almacene en una variable el dato que está actualmente contenido en la celda seleccionada, antes des cambiar el dato en ésta.
Private Sub Worksheet_Change(ByVal Target As Range)
'aqui pones el código que te almacenara el dato
'antes de cambiarlo
ActiveSheet.Unprotect
Target.Font.ColorIndex = 3
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True, AllowInsertingRows:=True, AllowDeletingRows:=True, AllowFiltering:=True
'con la siguiente instruccion...:
Application.OnUndo "Valor de celda", "reponervalor"
'lo que haces es generar una opción en el Menú deshaer,
'que aparecerá como: "Valor de celda";
'y "reponervalor" es la macro que ejecutará esta
'opción al ser seleccionada.
'PD: hecho de esta forma, cambiará el valor de la celda,
'mas no su formato (colores, fuente, etc)
End Sub
[size= small; font-family: Times New Roman]Excelente y muchas gracias, adopte la decisión que adopte ahora ya sé un poco más, además me has entendido muy bien.[/size]
[size= small; font-family: Times New Roman]Muchas gracias.[/size]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas