Excel VBA: Problema con Usuarios y Contraseñas
Buenas tardes:
Estoy desarrollando un sistema de registro de pagos para una cooperativa. Para esto he elaborado un sistema de 7 formularios en VBA. Para establecer un control de ingreso he asignado perfiles de usuarios de una manera mixta, a través de vba y a través de Excel.
Los perfiles en VBA son tres: el primero para mí, con lo cual ingresando el usuario y contraseña se despliegan todas las hojas, el segundo y tercero son para el gerente y otro para el administrador designado por el, quienes al ingresar su usuario y contraseña, despliegan un segundo formulario con tres botones que dan acceso a hojas específicas.
Finalmente en Excel he querido crear un listado que puede ser modificado únicamente por los tres usuarios registrados en VBA, de tal forma que asignen usuarios y claves hasta un límite de 9 personas, quienes al ingresar se les desplegara un formulario con un solo botón que da acceso a una única hoja.
Para ello he utilizado el siguiente código:
Private Sub CommandButton2_Click()
Dim usuario As String
Dim password As Variant
Dim DatoEncontrado
Blog = "EXCELeINFO"
Dim UsuarioExistente
UsuarioExistente =
Application.WorksheetFunction.CountIf(Range("D3:D12"),
Me.txtUsuario.Value)
Set rango = Range("D3:D12")
If txtUsuario = "DVGUDINO" And txtPassword =
"dardan" Then
ActiveWorkbook.Activate
Application.Visible = True
Hoja1.Visible = True
Hoja2.Visible = True
Hoja3.Visible = True
Hoja4.Visible = True
Hoja5.Visible = True
Hoja6.Visible = True
Hoja7.Visible = True
Hoja8.Visible = True
Hoja9.Visible = True
Hoja10.Visible = True
Hoja11.Visible = True
Unload UserForm5
Else
If txtUsuario = "STROJAS" And txtPassword =
"110501959" Or txtUsuario = "Admin" And txtPassword =
"11050" Then
Hoja4.Visible = True
Unload UserForm5
Load UserForm1
UserForm1.Show
If txtUsuario =
"STROJAS" Then
Hoja8.Range("G2").Value = "Gerente General"
ElseIf txtUsuario =
"Admin" Then
Hoja8.Range("G2").Value = "Administrador"
End If
Else
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 = Range(DatoEncontrado).Offset(0, -1).Value
UserForm6.Show
Unload Me
Else
MsgBox "La
contraseña es inválida", vbExclamation, Blog
End If
Exit Sub
End If
End If
End If
End Sub
El problema se me genera al momento de que una de los usuarios creados
en Excel ingresan, al cerrar la aplicación y volverla abrir se bloquea, y únicamente pueden ingresar los usuarios que están creados en VBA. Ingresa uno de los tres usuarios creados en VBA y funciona nuevamente, cierran la aplicación e ingresa uno de los usuarios
creados en Excel y funciona, pero estos cierran la aplicación y otra vez deja
de funcionar los usuarios creados en Excel.
SI es necesario para un mayor entendimiento puedo enviarles el archivo.
Agradezco su pronta respuesta