Voilà, voilà. J'ai un peu bûché sur la macro et je vous propose la création de mots de passe en une seule macro, beaucoup plus élégant que la méthode précédente !
Mode d'emploi :
1. Créer vos utilisateurs dans une feuille excel, dans la colonne A comme préconisé
2. Ouvrir le visual basic editor : il suffit de faire alt f11
3. insertion d'un nouveau module
4. copier intégralement la macro suivante
Public ValTotal As String
Public ValPassA As String
Public ValPassB As String
Sub Demarrer()
Dim ValAleatoire As Integer
Dim Longueur As Integer
ValTotal = "" 'nettoyage de la variable (cas de plusieurs utilisation a la suite)
Longueur = 0 'init de la variable
suite:
Randomize ' Initialise le générateur de nombres aléatoires.
' Renvoie une valeur aléatoire comprise entre 1 et 16.
ValAleatoire = Int((16 * Rnd) + 1)
'traitement de l'ajout d'un nombre
ValPassA = "V" & ValAleatoire
Call TableEquiC
Randomize ' Initialise le générateur de nombres aléatoires.
' Renvoie une valeur aléatoire comprise entre 1 et 5.
ValAleatoire = Int((5 * Rnd) + 1)
ValPassB = "V" & ValAleatoire
Call TableEquiV
saut:
'ajout des valeurs
ValTotal = ValTotal & ValPassA & ValPassB
Longueur = Longueur + 2
'compteur de la longueur du password
If Longueur < 4 Then
GoTo suite
Else
Randomize ' Initialise le générateur de nombres aléatoires.
' Renvoie une valeur aléatoire comprise entre 10 et 99.
ValAleatoire = Int((90 * Rnd) + 10)
ValTotal = ValTotal & ValAleatoire
Call Ecriture 'ecrire le password
End If
End Sub
Sub TableEquiC()
If ValPassA = "V1" Then
ValPassA = "B"
End If
If ValPassA = "V2" Then
ValPassA = "C"
End If
If ValPassA = "V3" Then
ValPassA = "D"
End If
If ValPassA = "V4" Then
ValPassA = "F"
End If
If ValPassA = "V5" Then
ValPassA = "G"
End If
If ValPassA = "V6" Then
ValPassA = "H"
End If
If ValPassA = "V7" Then
ValPassA = "J"
End If
If ValPassA = "V8" Then
ValPassA = "K"
End If
If ValPassA = "V9" Then
ValPassA = "L"
End If
If ValPassA = "V10" Then
ValPassA = "M"
End If
If ValPassA = "V11" Then
ValPassA = "N"
End If
If ValPassA = "V12" Then
ValPassA = "P"
End If
If ValPassA = "V13" Then
ValPassA = "R"
End If
If ValPassA = "V14" Then
ValPassA = "S"
End If
If ValPassA = "V15" Then
ValPassA = "T"
End If
If ValPassA = "V16" Then
ValPassA = "V"
End If
End Sub
Sub TableEquiV()
If ValPassB = "V1" Then
ValPassB = "A"
End If
If ValPassB = "V2" Then
ValPassB = "E"
End If
If ValPassB = "V3" Then
ValPassB = "I"
End If
If ValPassB = "V4" Then
ValPassB = "O"
End If
If ValPassB = "V5" Then
ValPassB = "U"
End If
End Sub
Sub Ecriture()
Dim DerLigneUser
Dim DerLignePass
'attention! on commence a écrire en ligne 2
Sheets("Feuil1").Select 'selection de la feuille
DerLigneUser = Cells(Cells.Rows.Count, "A").End(xlUp).Row 'trouver la dernière ligne occupé dans la colonne des noms
DerLignePass = Cells(Cells.Rows.Count, "C").End(xlUp).Row 'trouver le dernier pass
If DerLigneUser <= DerLignePass Then 'verif entre les colonnes noms et password
MsgBox "fin de l'opération"
Exit Sub
Else
Range("Feuil1!C" & (DerLignePass + 1)).Value = ValTotal 'ecrire le password
ValTotal = ""
Call Demarrer 'recommencer l'opération
End If
End Sub
5. Revenir à Excel et lancer la macro (outil, macro et choisir executer)
6. Les mots de passe sont créés automatiquement dans la colonne C du premier utilisateur (ligne 2) jusqu'au dernier. Nul besoin de faire autre chose.
7. Attention que la feuille excel dans laquelle vous travaillez s'appelle bien "Feuil1". Si vous êtes très organisé et que vous avez changé le nom, la macro ne saura s'exécuter.
7. Je vais donc effacer le tutorial précédent.
8.
Guy Werner. Collège du Sartay Embourg.