Saltar al contenido

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


Recommended Posts

publicado

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

publicado

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?

publicado

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]

publicado

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]

publicado

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?

publicado

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

publicado

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

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.