Générer un mot de passe aléatoire

Contenu du snippet

Function GeneratePassword(ByVal Length As Integer, ByVal UChars As Boolean, ByVal LChars As Boolean, ByVal Numbers As Boolean, Optional ByVal PersonnalChars As String = vbNullString) As  String
'Length             -> taille  désirée
'UChars             -> piocher dans  l'alphabet majuscule
'LChars             ->  piocher dans l'alphabet minuscule
'Numbers            -> piocher dans les  chiffres
'PersonnalChars     -> piocher dans  une série de caractères fournis
'GeneratePassword   -> retourne la chaîne de  résultat
    Dim sChars As String
    Dim i As Integer
    
    If Length > 0 Then
        Randomize Timer 'cette ligne peut être appelée juste une fois au démarrage de  l'appli, pas besoin dans la fonction
        sChars = PersonnalChars
        If LChars Then sChars = sChars & "azertyuiopqsdfghjklmwxcvbn"
        If UChars Then sChars = sChars & "AZERTYUIOPQSDFGHJKLMWXCVBN"
        If Numbers Then sChars = sChars & "0123456789"
        
        If LenB(sChars) Then
            GeneratePassword = Strings.Space$(Length)
            For i = 0 To Length - 1
                Mid$(GeneratePassword, i + 1, 1) =  Mid$(sChars, Int((Rnd  * Len(sChars)) + 1), 1)
            Next i
        End If
    End If
End Function

'    ---------------------
'   EXEMPLE  D'UTILISATION
'    ---------------------
Private Sub Command1_Click()
    Me.Cls
    Me.Print GeneratePassword(4, True, False, False) '  majuscules seulement
    Me.Print GeneratePassword(4, False, True, False) '  minuscules seulement
    Me.Print GeneratePassword(4, False, False, True) '  chiffres seulement
    Me.Print GeneratePassword(4, True, True, False) ' maj  + Min
    Me.Print GeneratePassword(4, True, False, True) ' maj  + chiffres
    Me.Print GeneratePassword(4, False, True, True) ' Min  + chiffres
    Me.Print GeneratePassword(4, True, True, True, "*@<>") ' maj + Min + chiffres + persos
End Sub


Compatibilité : VB6, VBA

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.