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:
-
Que tanto el usuario como la contraseña estén llenos.
-
Que el usuario ingresado exista en la tabla de usuarios.
-
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
Imagen de la tabla de usuarios
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