Hoja de protección de Excel VBA

Proteger una hoja de trabajo es una tarea importante para quienes trabajan en Microsoft Excel con mucha frecuencia. Es una tarea que necesita para proteger su hoja de ser editada por algún otro usuario. Suponga que está enviando un informe a la administración y luego la administración, a sabiendas o por error, cambia los parámetros o valores a través del informe. Se vuelve agitado identificar el error y, al mismo tiempo, volver a trabajar es algo que consume su tiempo. Para superar este problema, siempre es una buena práctica proteger una / s hoja / s para que se edite con una contraseña. Esta opción le ayuda al no permitir que un usuario realice ningún cambio dentro de la / s hoja / s. También puede compartir la contraseña con la persona destinataria y autorizada para realizar los cambios. Aunque Excel tiene la opción Proteger hoja de trabajo dentro de ella a través de la pestaña Revisar presente en la cinta de Excel, se vuelve agitado cuando tiene más de una hoja para proteger. Consumirá mucho tiempo protegiendo cada hoja una por una. En cambio, es una buena práctica escribir un código VBA que pueda proteger las hojas individuales o múltiples de su libro de trabajo para su edición.

Sintaxis de VBA Protect Sheet

Esta función VBA incorporada asociada con Worksheet le permite proteger la hoja con la ayuda de una contraseña. La sintaxis para la función VBA Protect Sheet es la siguiente:

Todos los parámetros son opcionales en esta función que puede adivinar a través de los corchetes mencionados para cada uno de ellos.

  • Contraseña: especifica la contraseña para la hoja. Si no se proporciona, la hoja estará protegida sin contraseña y el usuario puede editarla sin que se le solicite una contraseña.
  • DrawingObjects: argumentos opcionales que le permiten proteger diferentes formas de la hoja de trabajo. Toma valores booleanos. Por defecto establecido en FALSO.
  • Contenido: argumento opcional. Protege todos los objetos. Por defecto, los valores se establecen en TRUE.
  • Escenarios: protege todos los diferentes escenarios. El valor predeterminado se establece en VERDADERO.
  • UserInterfaceOnly: protege la interfaz de usuario pero no las macros. El valor predeterminado es VERDADERO si se ignora la macro, así como la interfaz de usuario estará protegida.
  • AllowFormattingCells: el valor predeterminado se establece en FALSE debido a que el usuario no puede formatear las celdas de la hoja. Si se establece VERDADERO, el usuario puede formatear las celdas de la hoja.
  • AllowInsertingColumns: valor predeterminado establecido en FALSE. Si se establece VERDADERO, el usuario puede insertar una columna en la hoja.
  • AllowInsertingRows: el valor predeterminado se establece en FALSE. Si se establece VERDADERO, el usuario puede insertar filas en la hoja.
  • AllowInsertingHyperlinks: el valor predeterminado se establece en FALSE. Si se establece VERDADERO, el usuario puede insertar hipervínculos en la hoja.
  • AllowDeletingColumns: el valor predeterminado se establece en FALSE. Si se establece VERDADERO, el usuario puede eliminar cualquier columna de la hoja.
  • AllowDeletingRows: el valor predeterminado se establece en FALSE. Si se establece VERDADERO, el usuario puede eliminar cualquier número de filas de la hoja.
  • AllowSorting: el valor predeterminado se establece en FALSE. Si se establece VERDADERO, el usuario puede ordenar los datos presentes en la hoja.
  • AllowFiltering: el valor predeterminado se establece en FALSE. Si se establece VERDADERO, el usuario puede filtrar los datos presentes en la hoja.
  • AllowUsingPivotTables: el valor predeterminado se establece en FALSE. Si se establece VERDADERO, el usuario puede usar y modificar las tablas dinámicas.

¿Cómo proteger la hoja en Excel VBA?

A continuación se muestran los diferentes ejemplos para proteger la hoja en Excel con VBA Protect.

Puede descargar esta plantilla de Excel de VBA Protect Sheet aquí - Plantilla de Excel de VBA Protect Sheet

Hoja de protección de VBA - Ejemplo # 1

Supongamos que tenemos una hoja llamada "Ejemplo 1" en un libro de trabajo llamado "Hoja de protección VBA". Queremos que esta hoja esté protegida con una contraseña. Para esto, siga los pasos a continuación:

Paso 1: inserte un nuevo módulo en Visual Basic Editor (VBE). Haga clic en Insertar > seleccione Módulo .

Paso 2: defina un nuevo subprocedimiento dentro del módulo.

Código:

 Sub Ejemplo_1 () End Sub 

Paso 3: Ahora tenemos que usar la función Proteger que se puede aplicar en un objeto llamado Hoja de trabajo. Inicie el código con el objeto Hojas de trabajo y escriba el nombre de una hoja de trabajo entre paréntesis que desea proteger.

Código:

 Sub Ejemplo_1 () Hojas de trabajo ("Ejemplo 1") Fin Sub 

Paso 4: Ahora, ponga un punto después de los paréntesis de cierre y use la palabra clave Protect que inicia el proceso de protección de la hoja llamada " Ejemplo 1 ".

Código:

 Sub Ejemplo_1 () Hojas de trabajo ("Ejemplo 1"). Protect End Sub 

Puede detenerse aquí mientras protege una sábana. Como todos los argumentos son opcionales, su hoja aún estará protegida, pero no le pedirá al usuario que ingrese la contraseña antes de editarla y será igual que una hoja desprotegida. Seguramente no lo querrás de esta manera. Por lo tanto, agregue una contraseña segura para proteger esta hoja en el siguiente paso.

Paso 5: Ingrese la palabra clave Contraseña y use una contraseña segura para proteger esta hoja.

Código:

 Sub Ejemplo_1 () Hojas de trabajo ("Ejemplo 1"). Proteger contraseña: = " " Fin Sub 

Solo usaremos el primer argumento de la función que se llama Contraseña y para el resto todos los argumentos iremos con los valores predeterminados.

Paso 6: Esto es todo, puede ejecutar este código presionando F5 o el botón Ejecutar y puede ver que el archivo ahora está protegido y le pedirá al usuario la contraseña tan pronto como intente editar cualquiera de las celdas.

Así es como protegemos una hoja usando la función VBA Protect.

Hoja de protección de VBA - Ejemplo # 2

Ahora, queremos proteger todas las hojas presentes en un libro de trabajo. Para esto, siga los pasos a continuación:

Paso 1: defina un subprocedimiento en el módulo.

Código:

 Sub Ejemplo_2 () End Sub 

Paso 2: Defina una nueva variable como hoja de trabajo usando Dim.

Código:

 Sub Example_2 () Dim wrk_sht As Worksheet End Sub 

Paso 3: Inicie un bucle For. Este bucle debe ejecutarse hasta la última hoja de trabajo del libro activo.

Código:

 Sub Example_2 () Dim wrk_sht como hoja de trabajo para cada wrk_sht en ActiveWorkbook.Worksheets End Sub 

Esta línea de código selecciona cada hoja de trabajo del libro activo y la almacena bajo la variable wrk_sht para cada iteración del bucle. El bucle finaliza en cuanto se selecciona la última hoja del libro y se almacena en la variable wrk_sht. Necesitamos definir una operación para este bucle. Seguramente estará protegiendo la hoja usando una contraseña.

Paso 4: Ahora, use la función Proteger para proteger las hojas que se almacenan bajo la variable wrk_sht para cada iteración del bucle For.

Código:

 Sub Ejemplo_2 () Dim wrk_sht como hoja de trabajo para cada wrk_sht en ActiveWorkbook.Worksheets wrk_sht.Protect Password: = " " End Sub 

Paso 5: Use la siguiente instrucción, permite que el ciclo se ejecute hasta que cada hoja de trabajo esté protegida.

Código:

 Sub Ejemplo_2 () Dim wrk_sht como hoja de trabajo para cada wrk_sht en ActiveWorkbook.Worksheets wrk_sht.Protect Password: = " " Next End Sub 

Si ejecuta este código, cada hoja de trabajo del libro de trabajo activo estará protegida por contraseña y deberá ingresarla cada vez que desee editar las hojas.

Cosas para recordar

  • Se recomienda utilizar una contraseña mientras protege una hoja. De lo contrario, no se le solicitará al usuario que ingrese una contraseña y puede editar directamente el archivo aunque lo haya protegido.
  • Se recomienda recordar la contraseña. De lo contrario, olvidarse de lo mismo nunca le permitirá editar el archivo. Es posible que tenga que pasar por varios métodos si pierde la contraseña y esos métodos están más allá del alcance de este artículo.

Artículos recomendados

Esta es una guía de VBA Protect Sheet. Aquí discutimos cómo proteger o bloquear hojas usando la función VBA Protect en Excel junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. ¿Cómo cambiar el nombre de la hoja en Excel VBA?
  2. Pasos para desproteger la hoja en Excel
  3. Hoja de activación de VBA (ejemplos con plantilla de Excel)
  4. ¿Cómo copiar una hoja de Excel?

Categoría: