Pessoal esse código em vba gera senhas aleatórias sem repetição de sequências, porém ele reorganiza as mesmas letras em uma nova sequência. Gostaria de saber se é possível fazer ele gerar sequências sem repetição dos mesmos grupos de letras, afim que seja geradas todas as sequências possíveis sem repetição do mesmo conjunto letras. Ex.: Letras (ABCDEF) Gerar senha com apenas três letras das seis escolhidas (abc, abd, abe, abf... quero poder continuar gerando senhas sem repetir o mesmo grupo de letras. Ex.: (abc) pois da forma que está ele ainda vai aparecer reorganizado diferente (cba, acb...). Quero impedir essa reorganização dos mesmos letras. Obs.: Se for possível essa rotina gostaria de saber o que tenho que alterar no código abaixo.
Option Compare Database
Function GerarSenha()
On Error GoTo TratarErro
Dim TamanhoSenha As Integer, Codigo As String, Novo As String
'--------------------------------------
'CRIA SENHA ALEATÓRIA
'--------------------------------------
Codigo = ""
TamanhoSenha = Nz(Form_SenhaAleatoria.TamanhoSenha,
Dim Letra(22)
Letra(0) = "A "
Letra(1) = "B "
Letra(2) = "C "
Letra(3) = "D "
Letra(4) = "E "
Letra(5) = "F "
Letra(6) = "G "
Letra(7) = "H "
Letra( = "I "
Letra(9) = "J "
Letra(10) = "K "
Letra(11) = "M "
Letra(12) = "N "
Letra(13) = "O "
Letra(14) = "P "
Letra(15) = "Q "
Letra(16) = "R "
Letra(17) = "S "
Letra(18) = "T "
Letra(19) = "U"
Letra(20) = "V "
Letra(21) = "X "
Letra(22) = "Z "
Randomize
Do While Len(Codigo) < TamanhoSenha
Novo = Letra(Int(22 * Rnd))
If InStr(1, Codigo, Novo) = 0 Then
Codigo = Codigo & Novo
End If
Loop
GerarSenha = Codigo
SairFunction:
Exit Function
TratarErro:
MsgBox "Ocorreu um erro ao processar o comando:" & Chr(13) & Err.Description, vbCritical, " Erro " & Err.Number
Resume SairFunction
End Function
Desde já agradeço!!!
Option Compare Database
Function GerarSenha()
On Error GoTo TratarErro
Dim TamanhoSenha As Integer, Codigo As String, Novo As String
'--------------------------------------
'CRIA SENHA ALEATÓRIA
'--------------------------------------
Codigo = ""
TamanhoSenha = Nz(Form_SenhaAleatoria.TamanhoSenha,
Dim Letra(22)
Letra(0) = "A "
Letra(1) = "B "
Letra(2) = "C "
Letra(3) = "D "
Letra(4) = "E "
Letra(5) = "F "
Letra(6) = "G "
Letra(7) = "H "
Letra( = "I "
Letra(9) = "J "
Letra(10) = "K "
Letra(11) = "M "
Letra(12) = "N "
Letra(13) = "O "
Letra(14) = "P "
Letra(15) = "Q "
Letra(16) = "R "
Letra(17) = "S "
Letra(18) = "T "
Letra(19) = "U"
Letra(20) = "V "
Letra(21) = "X "
Letra(22) = "Z "
Randomize
Do While Len(Codigo) < TamanhoSenha
Novo = Letra(Int(22 * Rnd))
If InStr(1, Codigo, Novo) = 0 Then
Codigo = Codigo & Novo
End If
Loop
GerarSenha = Codigo
SairFunction:
Exit Function
TratarErro:
MsgBox "Ocorreu um erro ao processar o comando:" & Chr(13) & Err.Description, vbCritical, " Erro " & Err.Number
Resume SairFunction
End Function
Desde já agradeço!!!