¿cómo proteger/desproteger una hoja usando vba?
En VBA existe el método PROTECT que puedes usar con una hoja. En este método, tienes la opción de proteger una hoja, con o sin contraseña. Y también puedes proteger un objeto de la sábana. Todo esto lo veremos en detalle en este tutorial.
En el tutorial, veremos cómo proteger y desproteger una o varias hojas usando código VBA.
Escribe código VBA para proteger una hoja.
Para proteger una hoja, primero debe especificar la hoja y luego utilizar el método de protección. Aquí están los pasos.
- Utilice el objeto de hojas para especificar la hoja.
- Ingrese el nombre de la hoja que desea proteger.
- Escriba un punto para obtener una lista de métodos y propiedades.
- Seleccione el método del proyecto o ingréselo.
Sheets("Sheet1").Protect
Enlaces útiles: Ejecutar una macro – Grabador de macros – Editor de Visual Basic – Manual de macros personales
Escribe código VBA para desproteger una hoja.
Para proteger una hoja, primero debe especificar la hoja y luego utilizar el método de desprotección. Aquí están los pasos.
- Especifique la hoja utilizando el objeto de hoja.
- Y luego, ingresa el nombre de la hoja que deseas proteger.
- Ingrese un punto para obtener una lista de métodos y propiedades.
- Seleccione el método “Desproteger” o ingréselo.
Sheets("Sheet1").Unprotect
Proteger una hoja con una contraseña
Si desea establecer una contraseña mientras protege una hoja, en este caso deberá utilizar el argumento contraseña para especificar una contraseña. Supongamos que desea establecer una contraseña «test123» en la hoja para protegerla, el código sería como el siguiente.
Sheets("Sheet1").Protect Password:="test123"
Desproteger una hoja con contraseña
De manera similar, si desea desproteger una hoja, debe mencionar la contraseña en el argumento de contraseña. Digamos que la contraseña que usó para proteger la hoja es «ADSBP», por lo que el código para desprotegerla sería el siguiente.
Sheets("Sheet1").Unprotect Password:="ADSBP"
Hay una cosa con la que debes tener cuidado, presta atención a la letra mayúscula porque VBA diferencia entre letras mayúsculas y minúsculas.
Otras cosas que debes saber
Como dije, estamos usando el método «Proteger» de VBA y hay otros argumentos además de «Contraseña» con este método que puedes usar.
expression.Protect (Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)
- DrawingObjects : Para proteger y desproteger formas.
- Contenido : PARA proteger las celdas que están bloqueadas y todo el gráfico.
- Escenarios : para proteger escenarios en la hoja de cálculo.
- UserInterfaceOnly : para proteger solo la interfaz de usuario, no las macros.
- AllowFormattingCells : para permitir al usuario aplicar formato a las celdas.
- AllowFormattingColumns : para permitir que el usuario aplique formato a las columnas.
- AllowFormattingRows : para permitir al usuario aplicar formato a las filas.
- AllowInsertingColumns : para permitir al usuario insertar nuevas columnas.
- AllowInsertingRows : para permitir al usuario insertar nuevas filas.
- AllowInsertingHyperlinks : para permitir al usuario crear hipervínculos.
- AllowDeletingColumns : para permitir al usuario eliminar columnas.
- AllowDeletingRows : para permitir al usuario eliminar filas.
- Permitir clasificación : para permitir al usuario ordenar filas, columnas y tablas.
- AllowFiltering : para permitir el filtrado de columnas.
- AllowUsingPivotTables : para permitir al usuario utilizar una tabla dinámica.
Comentarios
- Asegúrese de utilizar contraseñas seguras que combinen letras mayúsculas y minúsculas, números y símbolos.
- Si olvida su contraseña, Microsoft no podrá recuperarla. Por lo tanto, asegúrese de escribir su contraseña en algún lugar seguro.
- Si una hoja está protegida sin contraseña y ahora quieres protegerla con contraseña, primero debes desprotegerla. Y luego vuelva a protegerlo con una contraseña usando el código que vio arriba.