Simular acceso con usuario y password en Excel con formulario vba

En esta ocasión les comparto un ejemplo donde se simula el acceso a un sistema mediante el ingreso de un Usuario y una Contraseña.

Lo vamos a realizar mendiante un formulario de vba que nos pida y nos valide los siguientes datos:

  1. Que tanto el usuario como la contraseña estén llenos.
  2. Que el usuario ingresado exista en la tabla de usuarios.
  3. Que coincida el usuario ingresado con su contraseña.

Para validar que usuario existe se hace mediante la función COUNT.IF de vba; para elegir al usuario encontrado se hace con el método Find; y por último para validar que el usuario y la contraseña coincidan, se realiza haciendo un Offset de la celda encontrada.

Ver video Formulario vba para validar usuario y contraseña en Excel con macros

Imagen del formulario de acceso

image

Imagen de la tabla de usuarios

image

Código del formulario

':: By: Sergio Alejandro Campos Hernández
':: Date: marzo de 2012
':: http://exceleinfo.wordpress.com
':: Purpose: simular acceso con usuario y contraseña
'
Private Sub CommandButton2_Click()
Dim usuario As String
Dim password As Variant
Dim DatoEncontrado
Blog = "EXCELeINFO"
UsuarioExistente = Application.WorksheetFunction.CountIf(Range("D3:D12"), _
    Me.txtUsuario.Value)
Set Rango = Range("D3:D12")
If Me.txtUsuario.Value = "" Or Me.txtPassword.Value = "" Then
    MsgBox "Por favor introduce usuario y contraseña", vbExclamation, Blog
    Me.txtUsuario.SetFocus
ElseIf UsuarioExistente = 0 Then
    MsgBox "El usuario '" & Me.txtUsuario & "' no existe", vbExclamation, Blog
ElseIf UsuarioExistente = 1 Then
    DatoEncontrado = Rango.Find(What:=Me.txtUsuario.Value, MatchCase:=True).Address
    Contrasenia = Range(DatoEncontrado).Offset(0, 1).Value
    If Range(DatoEncontrado).Value = Me.txtUsuario.Value And Contrasenia = _
    Me.txtPassword.Value Then
        Range("G2").Value = "Usuario: " & Range(DatoEncontrado).Offset(0, -1).Value
        'Aquí va el código para dar acceso a todo lo que el programador decida
        Unload Me
    Else
        MsgBox "La contraseña es inválida", vbExclamation, Blog
    End If
End If
End Sub

:: Descargar el ejemplo

You may also like...