Una pregunta que a menudo nos hacen, “¿Cómo puedo proteger con contraseña y desproteger todas las hojas de cálculo en mi libro de una sola vez? Tengo muchas hojas y tengo que proteger y desproteger cada hoja por separado.” Desafortunadamente no hay ninguna característica estándar en MS Excel® que nos permita proteger y desproteger todas las hojas de una sola vez, sin embargo, podemos usar un código VBA bastante simple para hacer esto por nosotros.
¡EN PRACTICA!
Sigue los siguientes pasos y lograras proteger y desproteger todas las hojas de un libro de MS Excel® mediante un UserForm (Formulario de usuario) de Visual Basic:
- El libro de Excel debe estar habilitado para Macros (.xlsm), ya que mediante VBA es que es posible trabajar con esta opción.
- Ve a la Cinta de opciones/ Programador/ Grupo Código, Botón Visual Basic (MS Excel® 2007), para MS Excel® 2003 Barra de herramientas/ Macro/ Editor de Visual Basic o desde el libro abierto presionas (Alt + F11).
- En Microsoft Excel Objetos inserta un UserForm.
- Del Cuadro de herramientas que se genera a continuación vas a insertar dentro del UserForm un Cuadro de texto (ab|).
- Asegúrate de que el Cuadro de texto este seleccionado y luego ve a Propiedades (F4). En la ventana Propiedades del cuadro de texto desplázate hasta PasswordChar y en el cuadro blanco a la derecha escribe un asterisco * (Esto para cuando ingreses la contraseña para proteger y desproteger las hojas se muestre un asterisco en vez de los caracteres que escribas).
- Ahora del Cuadro de herramientas selecciona un Botón de comando, haz clic en el formulario de usuario y colócalo en la parte superior derecha, con el Botón de comando aún seleccionado, ve a Propiedades (F4), desde la ventana de propiedades del control CommandButton desplázate hasta Caption y en el cuadro blanco a la derecha escribe la palabra: OK.
- Ahora selecciona el formulario de usuario y a partir de ahí ve a la ventana Propiedades busca Caption y cambia UserForm1 por: Proteger o Desproteger todas las hojas, una vez seguido los pasos anteriores el formulario de usuario debe quedar como lo mostrado en la siguiente imagen:
- En la subcarpeta “Formularios” vas a presionar Ver código o también puedes presionar la tecla (F7) con el formulario seleccionado y coloca ahí exactamente el siguiente código:
Private Sub CommandButton1_Click()
Dim WSheet As Worksheet
For Each WSheet In Worksheets
If WSheet.ProtectContents = True Then
WSheet.Unprotect Password:=TextBox1.Text
Else
WSheet.Protect Password:=TextBox1.Text
End If
Next WSheet
Unload Me
End Sub
Inserta en Microsoft Excel Objetos un Modulo en el cual vas a colocar el siguiente código:
Sub MostrarFormulario()
UserForm1.Show
End Sub
- Guarda los cambios realizados a ahora ve al libro de Excel presionando (Alt + Q).
En el libro abierto desde cualquier hoja ve a la Cinta de Opciones ficha Programador/ Macros o presionas la combinación de teclas (Alt+ F8) y ejecutas la Macro denominada “MostrarFormulario” para llamar esta macro adicionalmente tienes la posibilidad de asignarle una Tecla de método abreviado de acuerdo a tu preferencia.
Al ejecutar la macro llamas al Formulario de Usuario en el cual podrás desproteger todas las hojas de trabajo que están protegidas y proteger todas las hojas de cálculo que no están protegidas.

No hay comentarios:
Publicar un comentario