Permitir 3 intentos de contraseña para usar un archivo de Excel antes de cerrarse
En un post anterior llamado Simular acceso con usuario y password en Excel con formulario vba presentaba un ejemplo en el que teníamos un formulario que nos solicita usuario y contraseña. Tanto el usuario como la contraseña los tomaba de una tabla y sólo cuando ambos coincidían, permitía cerrar el formulario y continuar.
En este ocasión, y tomando en cuenta el post mencionado, comparto un formulario que se lanza al momento de abrir nuestro archivo de Excel y nos solicita una contraseña para usarlo.
Ver video 3 intentos para abrir archivo de Excel
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Cómo funciona
A diferencia del otro formulario, este sólo pide una clave de acceso para poder usar el archivo. En caso de que intentemos en 3 ocasiones una clave y ésta sea inválida, se cerrará el archivo.
Código
'Definimos la variable pública Intentos Public Intentos As Byte ' 'Validar la clave Private Sub CommandButton1_Click() If Me.txtPass.Value = 1234 Then MsgBox "Contraseña válida. Se cerrará el formulario.", _ vbInformation, "EXCELeINFO" Unload Me Else Intentos = Intentos + 1 MsgBox "Contraseña inválida. Llevas " & Intentos & " intento(s).", _ vbInformation, "EXCELeINFO" Me.txtPass.SetFocus Me.txtPass.Value = "" End If If Intentos = 3 Then MsgBox "Has cumplido 3 intentos. Aquí se cerrará el archivo Excel.", _ vbInformation, "EXCELeINFO" Unload Me ActiveWorkbook.Close SaveChanges:=False Else End If End Sub ' 'Formateamos los objetos del formulario Private Sub UserForm_Initialize() With Me .txtPass.PasswordChar = "*" .txtPass.MaxLength = 8 End With End Sub ' 'Evitamos que use la x para cerrar el formulario Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Cancel = True MsgBox "Por favor, ingresa una contraseña.", vbInformation, "EXCELeINFO" End If End Sub
Animación del formulario en acción

De nueno, Sergio, un aporte estupendo. Le veo un pequeño problema, y es que si la seguridad de macros, la pones en muy alta, no se ejecuta, te sale la clásica pantalla con el anuncio: “Las macros se han desabilitado porque el nivel de seguridad está establecido en Muy Alto. Para ejecutar las macros…etc”; le das Aceptar y entras sin problemas al Libro excel.
Cómo se soluciona este problema. Habría que modificar algo en el códico o no se puede solucionar.
Gracias.
Saludos.
Aquí lo que recomiendo es que las hojas estén ocultas y dejar una pantalla en blanco con algún aviso sugiriendo que se habiliten las macros para poder usar el archivo.
Si las macros están habilitadas, entonces con código, se mostrarían las hojas para usar el archivo.