Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Simular usuario y Password en VBA

| 14 comentarios

En el siguiente artículo usted aprenderá a realizar un login básico en un formulario usando VBA. Este consiste en que cuando el usuario quiera acceder al libro Excel, este inmediatamente muestre una ventana de Login.

password1 password1

Además, esta venta que se abre para solicitar las credenciales, impide que el libro se muestre en su totalidad hasta que ingrese las credenciales correctas, estas son:

Usuario: admin

Contraseña: 12345

Así mismo, usted puede cambiar las credenciales desde el código del formulario.

'Validación de la credenciales correctas

If Trim (txtUser.Text) = "admin" And Trim (textContra.Text) = "12345" Then

MsgBox ("Acceso correcto"), vbInformation, "Ok"

Application.Visible = True 'Esta línea de código permite mostrar el libro excel

End

Else

MsgBox ("Las credenciales ingresadas son incorrectas, intente de nuevo"), vbExclamation, "Alerta"

End if

End sub

La sintaxis empieza declarando las variables a usar y asignándoles un valor a cada una, en este caso serán User y contraseña.

Dim user, contraseña As String

user = txtUser.Text

contraseña = txtContra.Text

Luego, se tendrá que validar que los campos de las credenciales este completo, luego se vera la validación de ellas.

'Comprobar que el usuario ingrese las credenciales

If Trim(txtUser) = "" Then ' Trim sirve para descartar saltos vacíos en el campo Usuario

    MsgBox "Ingrese Usuario, intente de nuevo", vbExclamation, "Alerta" 'Mensaje de alerta indicando que el campo debe ser llenado

    txtUser.SetFocus 'Ubica el curso en el campo Usuario

    Exit Sub

End If

If Trim(txtContra) = "" Then ' Trim sirve para descartar saltos vacíos en el campo Contraseña

    MsgBox "Ingrese Contraseña", vbExclamation, "Alerta" 'Mensaje de alerta indicando que el campo debe ser llenado

    txtContra.SetFocus 'Ubica el curso en el campo Contraseña

    Exit Sub

End If

 

Después viene la validación de la credencial correcta.

 

'Validación de las credenciales correctas

If Trim(txtUser.Text) = "admin" And Trim(txtContra.Text) = "12345" Then

    MsgBox ("Acceso correcto"), vbInformation, "Ok"

    Application.Visible = True 'Esta línea de código permite mostrar el libro Excel luego de ingresar las credenciales correctas

    End

Else

    MsgBox ("Las credenciales ingresadas son incorrectas, intente de nuevo"), vbExclamation, "Alerta"

    End If

End Sub

 

Todo lo de arriba conlleva la programación del botón INGRESAR, ahora para el botón cancelar simplemente colocamos lo siguiente:

 

Private Sub btnCan_Click()

Unload.me 'Cierra el formulario en su totalidad.

End Sub

 

Finalmente, para que el libro de Excel nos pida las credenciales al inicio se tiene que colocar el siguiente código en ThisWorkbook:

Private Sub Workbook_Open()

    Application.Visible = False 'No permite que el libro se muestre al abrirlo

    UserForm1.Show 'Muestra el formulario de login como primera ventana

End Sub

Bonus:

Adicionalmente se cambio la manera en la que se muestra los caracteres en el campo CONTRASEÑA, esto se hizo mediante la herramienta PROPIEDADES (Se coloco el carácter *).

password2 password2

Login

 

14 comentarios

  1. Amigo muy bueno el login pero tengo una duda.

    Yo tengo un programa para un Punto de Venta. con un login artificial, Este si yo quiero coloco los datos para simular sino igualmente abre. Luego de eso me abre un menú donde muestro que deseo hacer. Si quiero abrir el visual basic, ver los reportes, ver las hojas de Excel, y ver el Punto de venta...

    Cuando configuro tu login o cualquier otro login este Menú de Opciones desaparece y abre las hojas de excel directamente.

    El login que deseo es para eso, que abra el menu de opciones para que el negocio empiece a trabajar, pero que las hojas de excel no las toque nadie a no ser el que tenga la clave de ese excel.

  2. eres grandioso explicas mejor que mi profesor jajajajaja gracias para hacerlo mas interactivo te recomiendo mas imagenes

  3. me ha gustado, recomiendo que se desarrolla un ejemplo completo paso a paso

  4. Buen dia
    Para poner mas de 1 usuario y contrasena como se podria hacer eso.
    De antemano muchas gracias.

  5. Muy bueno !! Gracias por compartirlo. Saludos

  6. como agregar un formulario dentro de otro formulario

    loing dentro de el formulario

  7. ¿Cómo se haría si quiero que sea la primera vez que entre a crear el usuario y la contraseña y que valide que la contraseña sea segura, es decir, que tenga varias condiciones como son mayúscula, minúscula, números, caracteres especiales y mínima longitud?

  8. Hola!!!!, como haría para el caso de ser varios usuarios con sus respectivas contraseñas. Estoy intentado hacerlo con el archivo descargado pero no lo consigo. Gracias

    • Pues podrías crear una tabla con su respectivo nombre de usuario y contraseña,
      y crear una macro donde vaya a comparar el nombre de usuario y contraseña, si están correcta que le pase a usar el archivo, de lo contrario que no pase de ahí...
      con la opción de crear un nuevo usuario y clave.

  9. alguien que ayude porfa se lo agradecería tengo el lo diferente pero con la misma temática del tema relacionado quiero que cuando el usuario y la clave sean correctas se cierre el userfrom1 con unloand me pero no se donde insertarlo para que la macro pueda correr perfectamente

    Private Sub Ingresar_Click()

    With UserForm1
    Nom_Usuario = ("leonardo")
    clave = ("unicasa")
    If (TextBox2.Value) = Nom_Usuario Then
    Else
    MsgBox ("Usuario Incorrecto"), vbExclamation, "Proceso Detenido"
    'Borramos el contenido del userform
    TextBox2.Value = Empty
    End If

    If (TextBox1.Value) = clave Then
    Else
    MsgBox ("La Clave Introducida Es Incorrecta"), vbExclamation, "Proceso Detenido"
    'Borramos el contenido del userform
    End If
    TextBox1.Value = Empty

    End With
    End Sub

    • if me.Nom = "leonardo" or me.clave = "unicasa" then
      msgbox "Bienvenido",vbexclamation,"Leonardo Manuel"
      unload me
      else
      MsgBox ("Usuario y Clave Incorrecta"), vbExclamation, "Proceso Detenido"
      end if

  10. Puedes usar lo siguiente Leonardo Manuel:

    if me.Nom = "leonardo" or me.clave = "unicasa" then
    msgbox "Bienvenido",vbexclamation,"Leonardo Manuel"
    unload me
    else
    MsgBox ("Usuario y Clave Incorrecta"), vbExclamation, "Proceso Detenido"
    end if

  11. ¡Hola!, muchas gracias por tu valioso aporte, en realidad me ha sido de mucha ayuda, tengo una pregunta, una vez se aplica el código a la hoja de trabajo de excel ya cuando el "usuario" intenta ingresar y sale el formulario del usuario, si el usuario le da al botón cerrar directamente lo manda a una pestaña de VBA ¿Cómo se puede corregir esto para que si el usuario le da al botón cerrar desde el formulario, el archivo en excel simplemente no abra y no se ejecute en segundo plano?

  12. Como puedo agregar mas de un usuario?

Deja una respuesta

Los campos requeridos estan marcados con *.