Proteguer libro de Excel y permitir ciertas opciones – Bloquear y desbloquear celdas
En este post se verá como proteger una hoja de Excel y permitir ciertas opciones, es decir la hoja de Excel se protegerá ya sea con o sin contraseña, pero se permitirá al usuario realizar ciertas acciones en la hoja protegida.
Aprende Excel en forma rápido y fácil, hazlo en forma fácil y sencilla, click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.
Mira la macro en acción, una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestro canal de You Tube, mira el playlist con vídeos relacionados donde podrás ver la macros relacionadas en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.
Proteger Hoja de Excel con Clave y Otorgar Ciertos permisos en hojas protegidas
La macro de Excel permite proteger una hoja de cálculo, pero a su vez concede ciertos permisos a los usuarios, es decir si bien la hoja está protegida al dar permisos los usuarios pueden realizar ciertas acciones en hojas protegidas.
Proteger una hojas de Excel es posible hacerlo con password o sin password, la diferencia está en que cualquier persona no autorizada puede desbloquear el libro si no se asignó password, ya que para desbloquear solo basta ir a la pestaña «Inicio», menú «Formatos» y luego seleccionar desproteger hoja.
Al proteger hojas en Excel se puede establecer o conceder los siguientes permisos:
Permiso para «SELECCIONAR CELDAS BLOQUEADAS»
Permiso para «SELECCIONAR CELDAS DESBLOQUEADAS»
Permiso para «DAR FORMATO A CELDAS»
Permiso para «DAR FORMATO A COLUMNAS»
Permiso para «DAR FORMATO A FILAS»
Permiso para «INSERTAR FILAS»
Permiso para «INSERTAR COLUMNAS»
Permiso para «INSERTAR HIPERVINCULOS»
Permiso para «ELIMINAR COLUMNAS»
Permiso para «ELIMINAR FILAS»
Permiso para «ORDENAR»
Permiso para «USAR TABLAS DINÁMICAS Y GRÁFICOS DINÁMICOS»
Permiso para «MODIFICAR OBJETOS»
Permiso para «MODIFICAR ESCENARIOS»
Siempre al proteger una hoja se protege el contenido de la misma, por lo que estos permisos solo son útiles en celdas desbloqueadas.
En este ejemplo en cada uno de los botones se agrega un código para ir viendo que hace cada uno de ellos se debe presionar el botón correspondiente, para desbloquear la hoja se debe presionar el botón que lleva ese titulo
COMO BLOQUEAR Y DESBLOQUEAR CELDAS EN EXCEL
Cuando se protege una hoja en Excel, solo funcionará dicha protección, es decir se evitará que un usuario realice modificaciones en la hoja, solo en el único caso que las celdas estén bloqueadas.
En Excel todas las celdas de la hojas están bloqueadas por defecto, por ello al proteger la hoja inmediatamente no se pueden realizar absolutamente nada, salvo que se hayan otorgado permisos como los mencionados anteriormente, pero si no, no se podrá realizar nada en la hoja protegida.
Esto es posible, porque las celdas están bloqueadas por defecto, pero que sucede si la celdas estuvieran desbloqueadas, en este caso la protección de las celdas no tendría ningún efecto, por el simple hecho de que las celdas están desbloqueadas y ello permite realizar modificaciones en celdas a pesar que la hoja está bloqueada.
En base a lo mencionado, se puede entonces desbloquear ciertas celdas para permitir que se ingresen o se modifiquen datos y luego proteger la hoja obteniendo como resultado que el usuario podrá modificar solo ciertas, esto es muy útil cuando hay formulas que si son modificadas por error dañan la hoja de Excel y hacen la hoja de cálculos inútil o simplemente si no se quiere el el usuario modifique las estructura y formatos de la hoja.
Para bloquear celdas en Excel se debe en la pestaña «Inicio» hacer click en el menú «Número» y luego ira a la pestaña proteger hoja, como se muestra en la imagen siguiente.
Pero lo que nos interesa a nosotros que también se puede realizar con macros, es decir podemos establecer una instrucción para que proteja una hoja y desbloquee ciertas celdas o rangos para permitir trabajar en la hoja protegida, adelanto que el código para desbloquear celdas es el siguiente:
Range(«A8:D11»).Locked = False
y para bloquear el rango A8;D11 es el siguiente
Range(«A8:D11»).Locked = True
Explicación de la macro de Excel para proteger hojas y conceder permisos – Para Bloquear y Desbloquear Celdas
Para PROTEGER una hoja totalmente SIN PASSWORD, es decir no se puede hacer nada en ella, se debe usar el código:
ActiveSheet.Protect
Para DESPROTEGER una hoja SIN PASSWORD, se usa el código:
ActiveSheet.Unprotect
Para PROTEGER una hoja totalmente CON PASSWORD, el código es:
ActiveSheet.Protect Password:=123
Para DESPROTEGER una hoja CON PASSWORD, se usa el código
ActiveSheet.Unprotect Password:=123
Establecer que no pueda ser seleccionada ninguna celda tanto bloqueada como desbloqueada
ActiveSheet.EnableSelection = xlNoSelection
PERMITIR que se pueda SELECCIONAR las CELDAS BLOQUEADAS
ActiveSheet.EnableSelection = xlUnlockedCells
PERMITIR que se pueda aplicar FORMATO a CELDAS
ActiveSheet.Protect AllowFormattingCells:=True
PERMITIR que se pueda aplicar FORMATO a COLUMNAS
ActiveSheet.Protect AllowFormattingColumns:=True
PERMITIR que se pueda aplicar FORMATO a FILAS
ActiveSheet.Protect AllowFormattingRows:=True
PERMITIR que se pueda INSERTAR COLUMNAS
ActiveSheet.Protect AllowInsertingColumns:=True
PERMITIR que se pueda INSERTAR FILAS
ActiveSheet.Protect AllowInsertingRows:=True
PERMITIR que se pueda INSERTAR HYPERLINKS
ActiveSheet.Protect AllowInsertingHyperlinks:=True
PERMITIR que se pueda ELIMINAR COLUMNAS
ActiveSheet.Protect AllowDeletingColumns:=True
PERMITIR que se pueda ELIMINAR FILAS
ActiveSheet.Protect AllowInsertingRows:=True
PERMITIR que se pueda ELIMINAR FILAS
ActiveSheet.Protect AllowDeletingRows:=True
PERMITIR que se pueda ORDENAR en hoja protegida, pero celdas desbloqueadas solamente
ActiveSheet.Protect AllowSorting:=True
PERMITIR que se pueda USAR AUTOFILTRO en hoja protegida, pero celdas desbloqueadas solamente
ActiveSheet.Protect AllowFiltering:=True
PERMITIR que se pueda USAR TABLAS DINÁMICAS en hoja protegida, pero celdas desbloqueadas solamente
ActiveSheet.Protect AllowUsingPivotTables:=True
PERMITIR que se pueda MODIFICAR OBJETOS, en hoja protegidas, pero celdas desbloqueadas
ActiveSheet.Protect DrawingObjects:=True
PERMITIR que se pueda MODIFICAR ESCENARIOS, en hoja protegidas, pero celdas desbloqueadas
ActiveSheet.Protect Scenarios:=True
Si se quiere BLOQUEAR una CELDA o RANGO se debe utilizar el código:
Range(«A8»).Locked = True
Range(«A8:D11»).Locked = True
Si se quiere DESBLOQUEAR una CELDA o RANGO se debe utilizar el código:
Range(«A8»).Locked = False
Range(«A8:D11»).Locked = False
En el caso que se quiera proteger algunas cosas y permitir otras el código que se utiliza es el siguiente estableciendo en «true» para permitir y «false» para lo contrario, el código es el siguiente:
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
Se debe tener en cuenta que cuando se protege una hoja siempre se protege por defecto el contenido de la misma por más que se concedan ciertos permisos, es por ello que algunos permisos solo tienen efectos sobre celdas desbloqueadas como el uso de tablas dinámicas o autofiltro entre otros.
Descarga el Libro usado para Proteger Hojas con Ciertos Permisos
Descarga el libro de Excel de este ejemplo desde el final del post, el mismo es totalmente gratuito y su uso es libre, solicito aportar para sostener esta web, si está dentro de tus posibilidades, desde ya muchas gracias.
Código Formulario que se ingresa en un Modulo
Sub Password()
ActiveSheet.Protect Password:=123
MsgBox («Se protegió la hoja no se permite realizar nada en la hoja de Excel, password= 123»), vbInformation, «macrosenexcel.com»
End Sub
Sub ProtegerTodo()
ActiveSheet.Protect
MsgBox («Se protegió la hoja no se permite realizar nada en la hoja de Excel»), vbInformation, «macrosenexcel.com»
End Sub
Sub Desprotege()
ActiveSheet.Unprotect Password:=123
ActiveSheet.EnableSelection = xlSelection
MsgBox («Hoja Desprotegida»), vbInformation, «macrosenexcel.com»
End Sub
Sub Objetos()
ActiveSheet.Protect DrawingObjects:=True
MsgBox («Se permite modificar los objetos»), vbInformation, «macrosenexcel.com»
End Sub
Sub Scenarios()
ActiveSheet.Protect Scenarios:=True
MsgBox («Se permite modificar los escenarios»), vbInformation, «macrosenexcel.com»
End Sub
Sub Formatoceldas()
ActiveSheet.Protect AllowFormattingCells:=True
MsgBox («Se permite modificar formato celdas»), vbInformation, «macrosenexcel.com»
End Sub
Sub FormatoColumnas()
ActiveSheet.Protect AllowFormattingColumns:=True
MsgBox («Se permite modificar formato columnas»), vbInformation, «macrosenexcel.com»
End Sub
Sub FormatoFilas()
ActiveSheet.Protect AllowFormattingRows:=True
MsgBox («Se permite modificar formato filas»), vbInformation, «macrosenexcel.com»
End Sub
Sub InsertarColumnas()
ActiveSheet.Protect AllowInsertingColumns:=True
MsgBox («Se permite modificar el insertar columnas»), vbInformation, «macrosenexcel.com»
End Sub
Sub InsertarFilas()
ActiveSheet.Protect AllowInsertingRows:=True
MsgBox («Se permite modificar el insertar filas»), vbInformation, «macrosenexcel.com»
End Sub
Sub InsertarHyperlink()
ActiveSheet.Protect AllowInsertingHyperlinks:=True
MsgBox («Se permite modificar el insertar hyperlink»), vbInformation, «macrosenexcel.com»
End Sub
Sub EliminarColumnas()
ActiveSheet.Protect AllowDeletingColumns:=True
MsgBox («Se permite modificar el eliminar columnas»), vbInformation, «macrosenexcel.com»
End Sub
Sub EliminarFilas()
ActiveSheet.Protect AllowDeletingRows:=True
MsgBox («Se permite modificar el eliminar filas»), vbInformation, «macrosenexcel.com»
End Sub
Sub Ordenar()
ActiveSheet.Protect AllowSorting:=True
MsgBox («Se permite modificar el ordenar datos»), vbInformation, «macrosenexcel.com»
End Sub
Sub Autofiltro()
ActiveSheet.Protect AllowFiltering:=True
MsgBox («Se permite modificar uso de autofiltro»), vbInformation, «macrosenexcel.com»
End Sub
Sub TablasDinamicas()
ActiveSheet.Protect AllowUsingPivotTables:=True
MsgBox («Se permite modificar las tablas dinámicas»), vbInformation, «macrosenexcel.com»
End Sub
Sub PermiteSeleccion()
ActiveSheet.Protect
ActiveSheet.EnableSelection = xlNoSelection
MsgBox («Se protegió hoja y NO puede seleccionar celdas»), vbInformation, «macrosenexcel.com»
End Sub
Sub PermiteSeleccionCeldasBloqueadas()
ActiveSheet.Protect
ActiveSheet.EnableSelection = xlUnlockedCells
MsgBox («Se protegió hoja y se puede seleccionar solo celdas desbloqueadas»), vbInformation, «macrosenexcel.com»
End Sub
Sub BloqueaCelda()
ActiveSheet.Unprotect Password:=123
Range(«A8:D11»).Locked = True
ActiveSheet.Protect Password:=123
End Sub
Sub DesbloqueaCelda()
ActiveSheet.Unprotect Password:=123
Range(«A8:D11»).Locked = False
ActiveSheet.Protect Password:=123
End Sub
Sub Protegetodo()
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
End Sub
Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407