Hoja de protección VBA

Hoja protectora de Excel VBA

Podemos proteger la hoja de Excel usando el código vba que no permite al usuario realizar ningún cambio en los datos de la hoja de trabajo, todo lo que pueden hacer es leer el informe. Para ello, tenemos un método vba incorporado llamado "Proteger".

Al igual que protegemos nuestras hojas de trabajo en Excel, de manera similar, podemos usar VBA para proteger nuestras hojas de trabajo, se hace usando una declaración .protect, hay dos métodos para proteger la hoja, uno es con contraseña y otro sin contraseña, la sintaxis para proteger una hoja de trabajo es la siguiente Hoja de trabajo (). Proteger contraseña.

Por lo general, compartimos el informe final con el usuario o lector. Cuando compartimos el informe final con el usuario, deseamos que el usuario no realice ninguna modificación ni manipule el informe final. En tal escenario, todo se trata de confianza, ¿no es así?

Sintaxis

La protección de la hoja implica varios parámetros para proporcionar esto a diferencia de Desproteger la hoja. Veamos la sintaxis del método Proteger con contraseña.

¡¡¡Guau!!! No se deje intimidar por mirar la sintaxis. Eche un vistazo a la explicación de cada argumento a continuación.

  • Nombre de la hoja de trabajo: Primero debemos mencionar qué hoja de trabajo vamos a proteger.
  • Contraseña: Necesitamos ingresar la contraseña que estamos usando para proteger. Si ignoramos este parámetro, excel bloqueará la hoja sin contraseña y mientras desprotege la hoja la desprotegerá sin pedir contraseña.
  • Nota: Recuerde la contraseña que está dando, porque si la olvidó, tendrá que pasar por varios caminos difíciles.
  • Objeto de dibujo: si desea proteger objetos en la hoja de trabajo, puede pasar el argumento como VERDADERO o FALSO. El valor por defecto es verdadero.
  • Contenido: Para proteger el contenido de la hoja de trabajo, establezca el parámetro como VERDADERO o FALSO. El valor predeterminado es FALSO. Esto protegerá solo las celdas bloqueadas. El valor por defecto es verdadero.
  • Escenarios: si hay algún análisis hipotético en escenarios de Excel, también podemos protegerlos. Para proteger VERDADERO o FALSO. El valor por defecto es verdadero.
  • Solo interfaz de usuario: si desea proteger la interfaz de usuario que no sea macro, entonces debe ser VERDADERO. Si se omite este argumento, protegerá tanto las macros como la interfaz de usuario. Si establece el argumento en TRUE, solo protegerá la interfaz de usuario. El valor predeterminado es FALSO.
  • Permitir formato de celdas: si desea permitir que el usuario formatee la celda, puede establecer el parámetro en VERDADERO o en FALSO. El valor predeterminado es FALSO.
  • Permitir formato de columnas: si desea permitir que el usuario formatee cualquier columna en la hoja protegida, puede establecer el parámetro en VERDADERO o en FALSO. El valor predeterminado es FALSO.
  • Permitir formato de filas: si desea permitir que el usuario dé formato a cualquier fila de la hoja protegida, puede establecer el parámetro en VERDADERO o en FALSO. El valor predeterminado es FALSO.
  • Permitir insertar columnas en VBA: desea permitir que el usuario inserte nuevas columnas, luego debe establecer esto en VERDADERO. El valor predeterminado es FALSO.
  • Permitir insertar filas: si desea permitir que el usuario inserte nuevas filas, debe establecer esto en VERDADERO. El valor predeterminado es FALSO.
  • Permitir insertar hipervínculos: si desea permitir que el usuario inserte hipervínculos, debe establecerlo en VERDADERO. El valor predeterminado es FALSO.
  • Permitir eliminar columnas: si desea permitir que el usuario elimine columnas en VBA, debe establecer esto en TRUE. El valor predeterminado es FALSO.
  • Permitir eliminar filas: si desea permitir que el usuario elimine filas, debe establecer esto en VERDADERO. El valor predeterminado es FALSO.
  • Permitir clasificación: si desea permitir que el usuario ordene los datos, debe configurarlo en VERDADERO. El valor predeterminado es FALSO.
  • Permitir filtrado: si desea permitir que el usuario filtre los datos, debe configurarlo en VERDADERO. El valor predeterminado es FALSO.
  • Permitir el uso de tablas dinámicas: si desea permitir que el usuario use tablas dinámicas, debe configurarlo en VERDADERO. El valor predeterminado es FALSO.

¿Cómo proteger la hoja usando el código VBA?

Puede descargar esta plantilla de Excel de hoja de protección de VBA aquí - Plantilla de Excel de hoja de protección de VBA

Paso 1: seleccione la hoja que debe protegerse

Para proteger la hoja, el primer paso es decidir qué hoja necesitamos proteger usando una contraseña y debemos llamar a la hoja por su nombre usando vba Worksheet Object.

Por ejemplo, suponga que desea proteger la hoja denominada "Hoja maestra", luego debe mencionar el nombre de la hoja de trabajo como se muestra a continuación.

Paso 2: definir la variable de la hoja de trabajo

Después de mencionar el nombre de la hoja de trabajo, ponga un punto, pero no vemos ninguna lista de IntelliSense con la que trabajar, esto dificulta el trabajo. Para obtener acceso a la lista IntelliSense, define la variable como una hoja de trabajo.

Código:

 Sub Protect_Example1 () Dim Ws As Worksheet End Sub 

Paso 3: Dar referencia a la hoja de trabajo

Ahora establezca la referencia de la hoja de trabajo a la variable como Hojas de trabajo ("Hoja maestra") .

Código:

 Sub Protect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Hoja maestra") End Sub 

Ahora la variable "Ws" contiene la referencia de la hoja de trabajo denominada "Hoja maestra". Al usar esta variable podemos acceder a la lista intellisense.

Paso 4: seleccione el método de protección

Seleccione el método "Proteger" de la lista IntelliSense.

Paso 5: ingrese la contraseña

Especifique la contraseña entre comillas dobles.

Código:

 Sub Protect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Hoja maestra") Ws.Protect Password: = "MyPassword" End Sub 

Paso 6: Ejecute el código

Ejecute el código manualmente o utilizando la tecla de método abreviado F5 y luego protegerá la hoja llamada "Hoja maestra" .

Cuando la hoja está protegida, si queremos hacer alguna modificación, muestra algún mensaje de error como se muestra a continuación.

En caso de que desee proteger más de una hoja, entonces necesitamos usar bucles, a continuación se muestra el código de ejemplo para proteger la hoja.

 Sub Protect_Example2 () Dim Ws como hoja de trabajo para cada W en ActiveWorkbook.Worksheets Ws.Protect Contraseña: = "My Passw0rd" Siguiente Ws End Sub 

Nota: utilice otros parámetros para experimentar.