Validar contraseña en macros. Ayuda

En Excel tengo una tabla:

Cuenta USuario Contraseña

a100 Juan 100

a200 Luis 200

Tengo un formulario donde me piden el usuario y contraseña y al presionar OK si las claves coinciden procedo a realizar otras funciones pero si no me debe salir un mensaje que no coinciden.

En el ok_click() tengo lo siguiente:

clave1 = Application.WorksheetFunction.VLookup(ncuenta, Range("clientes"), 3, 0)
If clave = clave1 Then
foto.Picture = LoadPicture(ActiveWorkbook.Path & "\" & cliente & ".jpg")
saldo_actual = saldo
Else: MsgBox ("No coincide su clave. Ingrésela nuevamente")
End If

en clave1 estoy almacenando la clave que obtengo al buscar con buscarv, ncuenta es el nombre del txt del formulario que me pide que escriba el numero de cuenta, Range(clientes) es la tabla que está en la hoja de excel donde se encuentran los datos. 3 por que quiero la contraseña que está en la tercera columna.

Luego comparo clave=clave1 , clave es el nombre del txt del formulario, si son iguales me muestra la foto si no me sale el msgbox. Pero siempre me sale el msgBox así esté bien la clave. ¿Cuál es mi error?.

Respuesta
1

Un par de cosas:

- Acostúmbrate a poner "me." delante de los nombres de objetos que pertenezcan al formulario (clave y ncuenta). Así se entenderá mejor el código y no habrá dudas sobre a quién se refiere.

- Al principio del módulo (o del código del formulario) pon "Option Explicit". Eso te obliga a declarar todas las variables que usas en el proceso y te ayuda a localizara muchos errores de escritura.

Dicho eso, lo primero que quisiera saber es: ¿Encuentra bien la clave el "vlookup"?

Si no lo sabes puedes poner una instrucción "stop" detrás de "clave1 = ..." y cuando se pare la ejecución colocas el cursor sobre la palabra "clave1". Te aparecerá el contenido de la misma.

Igual el problema está en que la clave tiene espacios delante y/o detrás. Para evitar ese tipo de problemas puedes poner el IF con la función "trim$":

IF trim$(me.clave)=trim$(me.clave1) then...

Por último indicarte que hay diferencias entre mayúsculas y minúsculas por lo que las claves las daría como distintas si no están exactamente escritas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas