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

EXCELeINFO - 3 intentos de contraseña

:: Descargar el ejemplo

You may also like...

3 Responses

  1. Antonio says:

    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.

    • Sergio Alejandro Campos says:

      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.

  1. November 26, 2012

    […] Permitir 3 intentos de contraseña para usar un archivo de Excel antes de cerrarse […]

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: