Está en la página 1de 8

Simular usuario y Password en VBA

26/02/2019 por Editor | 13 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.

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 *).


Luis Amaya

02/06/2021 a las 11:59 am

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.

Responder

Leonardo Manuel

23/04/2021 a las 11:24 am

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

Responder

Luis Amaya

02/06/2021 a las 11:56 am

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

Responder

Luis Amaya

02/06/2021 a las 11:55 am

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

También podría gustarte