Jump to content

macro que te de una de tres contraseñas de forma aleatorea


Recommended Posts

Posted

muy buen dia espero se encuentren muy bien, mi cuestion es la siguiente y quiero ver si es posible y es lo siguiente:

tengo un libro que cada vez que inicia pide contraseña para abrirlo, quiero que esa contraseña sea aleatoria entre 3 contraseñas o de ser posible mas contraseñas, esto con la intension que no siempre sea la misma contraseña para que el usuario no se confie y sea mas dinamico la cuestion se seguridad del archivo.

supongamos que mis 3 contraseñas sean:

1racontraseña

2daacontraseña

3racontraseña

les mando un coordial saludo

Posted

por eso solo dije tres porque de esa manera tengo tres intentos, si hubieran sido mas pues me llevaria una eternidad, se me pasó preguntar si era posible que solo se activara esta opcion cada semana?

Posted

ok entiendo Smako solo quiero pedirte un favor lo que pasa es que no entiendo mucho tu codigo me gustaria pudieras explicarmelo o simplemente ponerle 'comentarios


Sub Workbook_Open()
Dim N, Limsup, Liminf, pass, contador As Integer
Liminf = 1
Limsup = 4
N = Int((Limsup - Liminf) * Rnd + Liminf)

contador = 0
Do While pass <> Range("A" & N)
If contador = 3 Then
MsgBox ("Ha excedido el número de intentos")
Exit Sub
End If
pass = InputBox("Ingresa la contraseña")
If pass <> Range("A" & N) Then
MsgBox ("Contraseña incorrecta")
End If
contador = contador + 1
Loop
MsgBox ("Contraseña correcta")
End Sub
[/PHP]

Posted

Claro que si hermano, para eso estamos bro:


Sub Workbook_Open()
Dim N, Limsup, Liminf, pass, contador As Integer
'Se define el límite inferior
Liminf = 1
'Se define límite superior (este valor nunca se toma)
Limsup = 4
'Se genera un valor aleatorio ente 1 y 3 y se convierte en entero
'El valor se guarda en N
N = Int((Limsup - Liminf) * Rnd + Liminf)

'Inicializa el contador para saber cuantos intentos fallidos se tienen
contador = 0

'Muestra mensaje para ingresar contraseña hasta que la contraseña coincida
'con alguna de las 3 definidas
Do While pass <> Range("A" & N)
If contador = 3 Then
'Cuando se ingresa mal 3 veces la contraseña muestra mensaje
MsgBox ("Ha excedido el número de intentos")
Exit Sub
End If
pass = InputBox("Ingresa la contraseña")
If pass <> Range("A" & N) Then
MsgBox ("Contraseña incorrecta")
End If
'Aumento del contador
contador = contador + 1
Loop
MsgBox ("Contraseña correcta")
End Sub
[/PHP]

Posted

gracias brother una ultima pregunta, lo que pasa es que he probado el archivo varias veces, y siempre escribo la contraseña zzz y siempre me da esa, es parte de lo aleatorio o no funciona el codigo?

Posted

perdon por la tardanza Smako, ya vi el codigo y la verdad pues asi como que muy aleatorio no este jeje, pero veo que cada vez que se abre el archivo aunmenta 1

Posted

Pues no, como que muy aleatorio no es, pero eso ya es por el Visual Basic. Lo que pasa es que toma valores desde 1 hasta 3 con decimales, entonces después los redondea. Si tu abres la macro una y otra vez seguidas el valor no cambia mucho ya que se basa en la hora del sistema para obtener el valor

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy