Problema con userform no modal.

Buen día, programe un userform de inicio para que al abrir una hoja de excel me pida usuario y password y dependiendo el usuario me abra otros userforms, el problema es que al correr el sistemita me manda el siguiente error:

Se ha producido el error '401' en tiempo de ejecución:

No se puede mostrar un formulario no modal cuando se muestra un formulario modal.

Esto es lo que tengo programado en el userform:

Private Sub SubmitButton_Click()
 Dim UserName As String
 Dim Password As String
 Dim RowCounter As Integer
 Dim Role As String
 UserName = UsernameTextBox.Value
 Password = PasswordTextBox.Value
 'comprueba si se llenan los dos campos
 If UserName = "" Or Password = "" Then
 MsgBox "Por favor complete todos los campos."
 Exit Sub
 End If
 'comprueba la existencia de usuario
 RowCounter = 2 'partimos de la fila 2, porque la primera fila contiene los encabezados
 Do
 If UserName = Sheets("UserData").Cells(RowCounter, 1).Value Then
 'user existe, revisamos que el password coincida
 If Password = Sheets("UserData").Cells(RowCounter, 2).Value Then
 'login exitoso!
 Role = Sheets("UserData").Cells(RowCounter, 3).Value
 Exit Do
 Else
 'mensaje de error (Password Erroneo)
 MsgBox "La contraseña es incorrecta!"
 Exit Sub
 End If
ElseIf Sheets("UserData").Cells(RowCounter, 1).Value = "" Then
 'mensaje de error (No existe el Usuario)
 MsgBox "Usuario Incorrecto! Su nombre de usuario distingue entre mayúsculas y minúsculas."
 Exit Sub
End If
 RowCounter = RowCounter + 1
Loop
'Mostrar Hojas
Select Case (Role):
 Case ("SuperAdmin"):
 Sheets("UserData").Visible = True
 Sheets("Base").Visible = True
 Sheets("Bitacora").Visible = True
 Sheets("Hoja4").Visible = True
 Sheets("Hoja5").Visible = True
 Case ("Usuario"):
 'Sheets("Bitacora").Visible = True
 UserForm1.Show
 Case ("Admin"):
 'Sheets("Bitacora").Visible = True
 'Sheets("Base").Visible = True
 UserForm8.Show
 End Select
 Unload Me
End Sub

De antemano les agradezco su atención y tiempo a mi solicitud.

1 Respuesta

Respuesta
1

Tienes que poner el primer formulario en propiedades

ShowModal = false

O pon todos los formulario en

Showmodal = True

O cierra el primer formulario y abre el segundo.

Unload me

userform1.show

unload me
userform8.show

Saludos. DAM

Como siempre, gracias por tus atinadas respuestas y por tu dedicación a mis dudas, como algo tan simple en apariencia, es algo tan difícil para los que comenzamos a programar, de nuevo gracias por todo, un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas