Validación de usuario y contraseña en formularios

Hola. Quiero saber como implementar usuario y contraseña en un aplicativo de excel hecho a partir de formularios. Quiero que la información este restringida de acuerdo al usuario que se conecte a la aplicación. Es una aplicación sencilla para registrar datos pero que requiere que las consultas sean filtradas de acuerdo al usuario. Agradezco los comentarios.

1 respuesta

Respuesta
1
Se me ocurre definir una hoja con los usuarios y el nivel de acceso
Usuario pass nivel
Ppppa1
Y segun el nivel (capturado en una variable global) restringir el acceso ejemplo
if nivel=1 then
CommandButton1.enabled=true
 else
CommandButton1.enabled=true
end if
No entiendo muy bien lo que dices. Creo que mi nivel de conocimiento de VB es bajo pero te cuento que hice y me cuentas si te parece una solución apropiada o si genera algún inconveniente (tamaño del archivo, velocidad de procesamiento, etc).
Efectivamente en una hoja se definió usuario con contraseña. En esa misma hoja le asigne a dos celdas los valores de los textbox donde se captura user y password. Busco el valor de estas celdas en la lista de usuarios y si hay error pongo un 0 o sino pongo un 1 y de acuerdo a los resultados permito el acceso a un nuevo formulario o no. Es así:
Este botón pertenece al formulario frmIngreso.
Private Sub cbnAceptar_Click()
    Worksheets("Usuarios").Range("D2").Value = txtUser.Value
    Worksheets("Usuarios").Range("D3").Value = txtPsw.Value
    validauser = Worksheets("Usuarios").Range("F2").Value
    validapsw = Worksheets("Usuarios").Range("F3").Value
    If validauser = 0 And validapsw = 0 Then
        Unload Me
        frmConsulta.Show
    Else
        MsgBox "Sus datos de ingreso están errados o su usuario no está autorizado. Valide nuevamente sus datos."
        Unload Me
        frmIngreso.Show
    End If
End Sub
Agradezco tus comentarios
Básicamente lo que haces es escribir los valores de los textbox a las celdas
y esas celdas las comparas con la lista de usuarios...
Lo ideal seria saltarse el pasode escribir los valores de los textbox a la celda y comparlos directamente, para ello necesito que me indiques cual son las columnas en donde están los datos de los usuarios y así crearte la rutina
Perfecto, los datos los tengo en la hoja "Usuarios". Para user estoy usando la columna A que tiene encabezado por lo cual los datos están a partir de la fila 2. Para password igual pero en la columna B.
Te agradezco inmensamente el tiempo que te tomas para compartir tu conocimiento.
Prueba con este código y disculpa la demora pues me surgieron algunos problemillas
Private Sub txtPsw_Change()
ult = Sheets("Usuarios").Range("A65536").End(xlUp).Row - 2 'cantidad de usuarios y pass
For x = 2 To ult ' recorremos los datos
If Cells(x, 1) = txtUser And Cells(x, 2) = txtPsw Then ' comparamos los usuarios y pass de las Col A y B
GoTo Exitoso: ' Si son los datos correctos saltamos a la etiqueta exitoso
Next x
' si recorrio todos los datos quiere decir que las claves estan malas
MsgBox "Sus datos de ingreso están errados o su usuario no está autorizado. Valide nuevamente sus datos."
Exit Sub
Exitoso:
frmConsulta.Show
Unload Me
End Sub
Una pequeña corrección en txtPsw.Text
Private Sub txtPsw_Change()
ult = Sheets("Usuarios").Range("A65536").End(xlUp).Row - 2 'cantidad de usuarios y pass
For x = 2 To ult ' recorremos los datos
If Cells(x, 1) = txtUser.Text And Cells(x, 2) = txtPsw.Text Then ' comparamos los usuarios y pass de las Col A y B
GoTo Exitoso: ' Si son los datos correctos saltamos a la etiqueta exitoso
Next x
' si recorrio todos los datos quiere decir que las claves estan malas
MsgBox "Sus datos de ingreso están errados o su usuario no está autorizado. Valide nuevamente sus datos."
Exit Sub
Exitoso:
frmConsulta.Show
Unload Me
End Sub
Muchas gracias, me es de gran utilidad tu solución. Te agradezco tomar el tiempo necesario para caompartir tus conocimientos con quienes queremos aprender un poco más de este tema tan atractivo y enriquecedor. Mil gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas