Générer des mots de passe aléatoires, Excel VBA

Générer des mots de passe aléatoires, Excel VBA

Voici une explication détaillée ainsi que le code VBA pour générer des mots de passe aléatoires dans Excel.
Objectif
Nous souhaitons créer un code VBA qui génère des mots de passe aléatoires en fonction de critères spécifiques, tels que la longueur et l’inclusion de lettres majuscules, lettres minuscules, chiffres et caractères spéciaux.
Étapes pour créer le code VBA pour générer des mots de passe
1. Ouvrir Excel : Ouvrez votre classeur Excel dans lequel vous souhaitez implémenter la génération de mots de passe.
2. Accéder à l’éditeur VBA : Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
3. Insérer un module :

  • Dans l’éditeur VBA, allez dans Insertion > Module.
  • Cela va créer un nouveau module dans lequel nous allons écrire le code.

4. Écrire le code : Voici un code VBA détaillé qui génère des mots de passe aléatoires en fonction de la longueur choisie par l’utilisateur et des types de caractères (lettres majuscules, lettres minuscules, chiffres et caractères spéciaux).
Code VBA pour générer un mot de passe aléatoire

Sub GenererMotDePasseAleatoire()
    ' Déclaration des variables
    Dim longueurMotDePasse As Integer
    Dim motDePasse As String
    Dim charSet As String
    Dim i As Integer
    Dim indexAleatoire As Integer
    ' Demande de la longueur du mot de passe
    longueurMotDePasse = InputBox("Entrez la longueur du mot de passe (entre 8 et 20 caractères) :", "Longueur du mot de passe")
    ' Validation de l'entrée
    If longueurMotDePasse < 8 Or longueurMotDePasse > 20 Then
        MsgBox "La longueur du mot de passe doit être comprise entre 8 et 20 caractères."
        Exit Sub
    End If
    ' Définition des caractères disponibles pour le mot de passe
    Dim minuscules As String
    Dim majuscules As String
    Dim chiffres As String
    Dim caracteresSpeciaux As String
    minuscules = "abcdefghijklmnopqrstuvwxyz"
    majuscules = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    chiffres = "0123456789"
    caracteresSpeciaux = "!@#$%^&*()-_=+[]{}|;:,.<>?/~"
    ' Fusionner tous les caractères dans une seule chaîne
    charSet = minuscules & majuscules & chiffres & caracteresSpeciaux
    ' Initialisation du mot de passe comme une chaîne vide
    motDePasse = ""
    ' Génération du mot de passe en sélectionnant aléatoirement des caractères de la chaîne charSet
    For i = 1 To longueurMotDePasse
        indexAleatoire = Int((Len(charSet) * Rnd) + 1)
        motDePasse = motDePasse & Mid(charSet, indexAleatoire, 1)
    Next i
    ' Afficher le mot de passe généré dans une boîte de message
    MsgBox "Votre mot de passe généré est : " & motDePasse
End Sub

Explication du code
Détail des étapes :
1. Déclaration des variables :

  • longueurMotDePasse : Cette variable contient la longueur du mot de passe que l’utilisateur choisit.
  • motDePasse : Cette variable contiendra le mot de passe généré.
  • charSet : Cette variable contient l’ensemble des caractères possibles (minuscules, majuscules, chiffres et caractères spéciaux).
  • minuscules, majuscules, chiffres, caracteresSpeciaux : Ces variables contiennent les différents ensembles de caractères qui peuvent être utilisés pour générer le mot de passe.
  • indexAleatoire : Cette variable contient un indice généré aléatoirement pour sélectionner un caractère dans l’ensemble des caractères.

2. Demander à l’utilisateur la longueur du mot de passe :

  • La fonction InputBox demande à l’utilisateur d’entrer la longueur du mot de passe, entre 8 et 20 caractères.
  • Si la longueur est inférieure à 8 ou supérieure à 20, un message d’erreur s’affiche et l’exécution du code s’arrête.

3. Définition des ensembles de caractères :

  • Nous définissons les ensembles de caractères disponibles :
    • minuscules : Lettres minuscules (a-z).
    • majuscules : Lettres majuscules (A-Z).
    • chiffres : Chiffres de 0 à 9.
    • caracteresSpeciaux : Caractères spéciaux (vous pouvez ajouter ou retirer des caractères si nécessaire).
  • Ces ensembles sont ensuite fusionnés dans une seule chaîne charSet, contenant tous les caractères utilisables pour la génération du mot de passe.

4. Génération du mot de passe :

  • Une boucle For s’exécute un nombre de fois égal à la longueur du mot de passe demandée par l’utilisateur.
  • À chaque itération, un indice aléatoire indexAleatoire est généré à l’aide de la fonction Rnd. Cet indice détermine quel caractère dans charSet sera utilisé.
  • Le caractère sélectionné est ensuite ajouté à la variable motDePasse à l’aide de la fonction Mid.

5. Affichage du mot de passe :

  • Une fois la boucle terminée, le mot de passe généré est affiché dans une boîte de message (MsgBox).

Comment exécuter le code
1. Après avoir collé le code dans le module, vous pouvez l’exécuter en :

  • Appuyant sur F5 dans l’éditeur VBA, ou
  • Revenir à Excel, appuyer sur Alt + F8, sélectionner GenererMotDePasseAleatoire et cliquer sur Exécuter.

2. Une boîte de dialogue apparaîtra, vous demandant de saisir la longueur du mot de passe (entre 8 et 20 caractères). Après avoir saisi une longueur valide, le mot de passe sera généré et affiché dans une boîte de message.
Personnalisation

  • Complexité du mot de passe : Vous pouvez modifier la chaîne charSet pour inclure ou exclure certains caractères selon vos besoins.
  • Longueur minimale/maximale : Vous pouvez ajuster les conditions de validation de la longueur du mot de passe (dans la condition If) pour correspondre à vos exigences spécifiques.

Conclusion
Ce code est un générateur simple de mots de passe aléatoires, permettant à l’utilisateur de générer des mots de passe complexes comportant des lettres, des chiffres et des caractères spéciaux. Il peut être facilement personnalisé selon vos besoins, par exemple en imposant des règles comme l’inclusion obligatoire de certains types de caractères.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x