Usuario y contraseña contraseña en excel

Estimado calvuch, aquí me tienes de nuevo molestándote, mi pregunta es la siguiente:
Tengo un userform en donde tengo creado dos textbox (para insertar el usuario y contraseña) y dos commandbutton (aceptar y cancelar) programados, ahora bien quiero tener tres oportunidades para poder intersertar las claves, tengo la siguiente clave, espero tu ayuda, de antemano mil gracias.
En el ThisWorkbook tengo esto:
Private Sub Workbook_Open()
  Application.Visible = False
  UserForm2.Show
End Sub
en el Userform tengo esto
Option Explicit
Private Sub CommandButton1_Click()
If TextBox1 = "" Then
MsgBox "Escriba su usuario", vbCritical
Exit Sub
End If
If TextBox2 = "" Then
MsgBox "Escriba su contraseña", vbCritical
Exit Sub
End If
Call valida_usuario(TextBox1 & ";" & TextBox2)
UserForm1.Show
Unload Me 'opcional seguir en el UF2 para permitir un nuevo ingreso de clave
End Sub
Private Sub CommandButton2_Click()
Unload Me
Application.Visible = False: ActiveWorkbook.Close
End Sub
Private Sub UserForm_Click()
End Sub
y en el modulo tengo esto:
Sub valida_usuario(cadena As Variant)
Dim Archivo1 As String
Dim error As Boolean
On Error GoTo err
Open (ActiveWorkbook.Path & "\Password.txt") For Input As #1
Do Until EOF(1)
Line Input #1, Archivo1
If cadena = Archivo1 Then error = True: Exit Do
DoEvents
Loop
If error = False Then
MsgBox "La contraseña no es valida", vbCritical: Application.Visible = False: ActiveWorkbook.Close
Else
Application.Visible = False
Unload UserForm2
End If
Close #1
err:   If err.Number = 53 Then MsgBox "No se encuentra La tabla de contraseñas ", vbCritical
End Sub

1 respuesta

Respuesta
1
En el modulo declara las sgtes variables:
Option Explicit
Public intento As Boolean
Dim f As Integer
luego el Sub valida_usuario(cadena As Variant) que asi:
Sub valida_usuario(cadena As Variant)
Dim Archivo1 As String
Dim error As Boolean
On Error GoTo err
Open (ActiveWorkbook.Path & "\Password.txt") For Input As #1
Do Until EOF(1)
Line Input #1, Archivo1
If cadena = Archivo1 Then error = True: Exit Do
DoEvents
Loop
If error = False Then
f = (f + 1)
If f = 4 Then Application.Visible = True: ActiveWorkbook.Close
MsgBox "La contraseña no es valida", vbCritical: Application.Visible = False: intento = False
Else
intento = True
Application.Visible = False
Unload UserForm2
End If
Close #1
err:   If err.Number = 53 Then MsgBox "No se encuentra La tabla de contraseñas ", vbCritical
End Sub
el form que da asi:
Option Explicit
Private Sub CommandButton1_Click()
If TextBox1 = "" Then
MsgBox "Escriba su usuario", vbCritical
Exit Sub
End If
If TextBox2 = "" Then
MsgBox "Escriba su contraseña", vbCritical
Exit Sub
End If
Call valida_usuario(TextBox1 & ";" & TextBox2)
If intento = True Then
Unload Me 'opcional seguir en el UF2 para permitir un nuevo ingreso de clave
UserForm1.Show
End Sub
Private Sub CommandButton2_Click()
Unload Me
Application.Visible = False: ActiveWorkbook.Close
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas