Validar espacios vacíos en un userform con limite de validación para un usuario y contraseña

Estoy tratando de que cuando se abre el formulario si el usuario no le ingresa usuario y contraseña pues que muestre un mensaje y que si lo ha

Control = 1
'UserForm1.Show
For Control = 1 To 3
100 usuario = TextBox1.Text
contraseña = TextBox2.Text
'se muestra mensajes en caso de que se le de iniciar y no haya llenado los campos
If Control = 3 Then GoTo 10000
If Trim(TextBox1.Text) = "" Or Trim(TextBox1.Text) = "" Then
MsgBox "Por favor ingresa usuario y contraseña", vbExclamation, "Alerta":
UserForm3.Hide
TextBox1.SetFocus
Control = 1 + 1: UserForm3.Show: GoTo 100
'Exit For
'Exit Sub
End If
' esta variable userexistente va ser un conteo del rango de los valores que hay en la columna usuario
Userexistente = Application.WorksheetFunction.CountIf(Range("Usuario"), _
                                                 Me.TextBox1.Value)
 Valpassword = Application.WorksheetFunction.CountIf(Range("password"), _
                                                 Me.TextBox2.Value)
If Userexistente = 0 Or Valpassword = 0 Then
MsgBox "Usuario o contraseña Incorrectos", vbExclamation, "Alerta"
TextBox1.SetFocus
Exit Sub
End If
Sheets("Gestores").Select
'Range("Usuario").Select
Set Rango = Range("Usuario")
'se valida que el user exista en la tabla
If Userexistente = 0 Then
MsgBox "El Usuario '" & Me.TextBox1 & "' no existe", vbExclamation, blog
Me.TextBox1.SetFocus
'En caso de que si exista el usuario, se valida su contraseña
ElseIf Userexistente = 1 Then
   DatoEncontrado = Rango.Find(What:=Me.TextBox1.Value, MatchCase:=True, lookAt:=xlWhole).Address
   contraseña = CStr(Range(DatoEncontrado).Offset(0, 1).Value)
If Range(DatoEncontrado).Value = Me.TextBox1.Value And contraseña = _
    Me.TextBox2.Value Then
    UserForm1.Show
     Else
        MsgBox "La contraseña es inválida", vbExclamation, blog
     End If
    For i = 1 To 3 Step 1
     MsgBox "ingrese de nuevo la contraseña"
    If contraseña <> TextBox2.Value Then
     MsgBox "contraseña incorrecta, vuelve a intentarlo"
     TextBox1.Value = ""
     TextBox2.Value = ""
     Exit Sub
     End If
     Next i
     If i = 4 Then
     MsgBox "Ha ingresado la contraseña incorrecta el numero maximo de vecese su acceso ha sido denegado", "ACCESO NO PERMITIDO", vbCritical
     Unload Me
    End If
    End If
      Next Control
10000 End Sub

Ce a las tres veces se cierre el userform

Lo he intenteado con un ciclo for y while pero no me deje volver a pedirle que llene las textbox

Tengo un contador y no suma los intentos . Quien me ayuda

1 Respuesta

Respuesta
1

Te anexo el código.

Al principio de todo el código debe quedar la variable "contador"

Cambia en el código en estas líneas por tus datos

    Set h = Sheets("Usuarios")      'hoja de usuarios y password
    col1 = "A"                      'columna de usuarios
    col2 = "B"                      'columna de password

Normalmente no se verifica si existe el usuario, se verifica la existencia de usuario y password. Pero avísame si quieres verificar la existencia del usuario y después la existencia de usuario y password.

En el evento Activate, debes quedar contador = 1



Dim contador
'
Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h = Sheets("Usuarios")      'hoja de usuarios y password
    col1 = "A"                      'columna de usuarios
    col2 = "B"                      'columna de password
    If TextBox1.Value = "" Or TextBox2.Value = "" Then
        MsgBox "Por favor ingrese usuario y contraseña", vbExclamation
        TextBox1.SetFocus
        Exit Sub
    End If
    '
    existe = False
    For i = 2 To h.Range(col1 & Rows.Count).End(xlUp).Row
        If h.Cells(i, col1) = TextBox1.Value And h.Cells(i, col2) = TextBox2.Value Then
            existe = True
            contador = 1
            UserForm1.Show
            Exit For
        End If
    Next
    '
    If existe = False Then
        If contador = 3 Then
            MsgBox "Ha ingresado la contraseña incorrecta el número máximo de veces, " & _
                   "su acceso ha sido denegado", vbCritical, "ACCESO NO PERMITIDO"
            Unload Me
        Else
            MsgBox "Usuario o Contraseña incorrecta, vuelva a intentarlo", vbExclamation
            contador = contador + 1
            TextBox1.SetFocus
        End If
    End If
End Sub
'
Private Sub UserForm_Activate()
    contador = 1
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas