Buenas! Necesito hacer en visual basic una validación de contraseña, pero lo que necesito en si, es validarla al momento que el usuario la crea. Por ejemplo tengo un form con dos txt, uno para colocar el usuario y otro el pass, el tema es que si el usuario coloca un pass de números repetidos (1111) o letras (aaaa) debe salir un msgbox que diga que el pass debe ser más complejo. Y no se cómo comprobar si una misma tecla se repitió 4 veces.
Desde ya muchas gracias! Saludos!
He creado el siguiente ejemplo en el cuál se asume que tienes don controles, un TextBox [llamado Text1] y un CommandButton [llamado Command1] colocados en un formulario; se analiza la contraseña al presionar el botón [evento clic del CommandButton]. Option Explicit Private Sub Command1_Click() 'matriz dinámica Dim Matriz() As String 'se puede establecer el número _ de caracteres que se pueden repetir Const REPETICIONES_PERMITIDAS = 4 'longitud de la cadena de texto Dim Longitud As Integer 'variable usada en los ciclos Dim i As Integer 'cuenta el número de caracteres _ repetidos consecutivamente Dim Repeticiones As Integer With Text1 Repeticiones = 1 'verificar la longitud del texto Longitud = Len(.Text) 'redimensionar la matriz de acuerdo _ A la longitud de la cadena de texto ReDim Matriz(Longitud - 1) 'almacenar cada uno de los caracteres en _ La matriz For i = 0 To Longitud - 1 .SelStart = i .SelLength = 1 Matriz(i) = .SelText Next i 'ciclo que compara los caracteres _ repetidos consecutivamente For i = 0 To Longitud - 2 'compara un caracter con el siguiente If Matriz(i) = Matriz(i + 1) Then 'si son iguales incrementa las repeticiones Repeticiones = Repeticiones + 1 'verifica que el número de repeticiones _ Actuales sea igual al número de repeticiones _ Permitidas por el sistema y también verifica _ Que la longitud sea igual al número de repeticiones _ Permitidas por el sistema [por ejemplo sí se permiten _ Las contraseñas "asdf1111" y "a1eeee3r" pero no se _ Permiten "1111" y "eeee"] If Repeticiones = REPETICIONES_PERMITIDAS And _ Longitud = REPETICIONES_PERMITIDAS Then MsgBox "¡Contraseña no segura!", vbExclamation, "Error" End If Else 'si no se repiten 4 caracteres consecutivamente _ se reinicia el contador de repeticiones Repeticiones = 1 End If Next i End With End Sub Puedes modificarlo según tus necesidades [por ejemplo puedes colocar el código en un procedimiento y llamarlo en el evento LostFocus de un TextBox]. Espero te haya sido de utilidad, si necesitas una explicación más extensa o te surge una duda, consúltame para solucionarlo. Saludos desde México. Juan Pablo.