Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

[Résolu] Générateur de mots de passe


Bell@tor

Messages recommandés

bjr a ts !

 

je voudrai créer, ds une feuille excel, un generateur de mot de passe.

 

j'explique ce que je voudrai :

 

ds la colonne A il y a ts les noms d'utilisateurs

ds la colonne b il y a ts les prénoms d'utilisateurs

ds la colonne c il y aurait ts les mots de passe générés

 

comment, a partir d'un bouton, créer un mot de passe aléatoire ds la colonne c pour ts les lignes contenant les noms d'utilisateurs ?

merci d'avance

Modifié par Bell@tor
Lien vers le commentaire
Partager sur d’autres sites

tu créé (dans ton code) une table de correspondance 1 =a 2 = b etc

(tu peux compliquer a l'envie avec des majuscules ou des caractères spéciaux)

 

puis avec "random" tu demande au systeme de générer un chiffre aléatoire compris entre 1 et le dernier numero de ta table de correspondance.

 

tu ajoutes a ta variable create_pass le resultat

et tu recomence autant de fois que nécéssaire pour avoir la longueur de password.

 

et voila.

 

bien évidement cela se fait en vba. (les macros excel)

 

a+

Lien vers le commentaire
Partager sur d’autres sites

minute quoi.

 

j'arrive.

 

 

donc ouvrir excel, puis faire ALT + F11

dans la fenetre clic "insertion" puis "nouveau module"

 

colle dedans ce qui suit

 

Public ValTotal As String
Public ValPass 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)

' éviter le chiffre 10
If ValAleatoire = 10 Then GoTo suite

'traitement de l'ajout d'un nombre

If ValAleatoire < 10 Then 'si compris entre 1 et 9 utiliser tel quel
ValPass = ValAleatoire
GoTo saut
End If
ValPass = "V" & ValAleatoire 'si plus de 10 ==> table de correspondance
Call TableEqui
saut:

'ajout des valeurs
ValTotal = ValTotal & ValPass
Longueur = Longueur + 1

'compteur de la longueur du password
If Longueur < 7 Then
GoTo suite
Else
'MsgBox "le password est : " & ValTotal 'montrer le password (a supprimer dans un mode normal)
Call Ecriture 'ecrire le password
End If

End Sub





Sub TableEqui()

If ValPass = "V11" Then
ValPass = "a"
End If

If ValPass = "V12" Then
ValPass = "b"
End If


If ValPass = "V13" Then
ValPass = "d"
End If

If ValPass = "V14" Then
ValPass = "*"
End If

If ValPass = "V15" Then
ValPass = "?"
End If

If ValPass = "V16" Then
ValPass = "&"
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

 

dans le sub TableEqui tu rajoute les équivalences que tu veux.

 

voila.

 

A +

Lien vers le commentaire
Partager sur d’autres sites

Salut a tous,

 

Eh pourquoi pas simple fonction a laquelle on passe le nombre de caractere du mot de passe que l'on veut et qui renvoi un mot de passe aleatoire...

 

P'tit exemple vite fait:

 


Private Function GeneratePassword(ByVal PasswordLenght As Byte) As String

Dim b		   As Byte
Dim i		   As Byte
Dim i2		  As Byte
Dim s		   As String
Dim Password	As String

Randomize

For i = 1 To PasswordLenght

	i2 = Int((6 - 2 + 1) * Rnd + 2)

	If i2 = 4 Then 'genere une lettre majuscule
		b = cByte((90 - 65 + 1) * Rnd + 65)
		s = Chr(b)
	ElseIf i2 = 3 Then ' genere un chiffre
		b = cByte((57 - 48 + 1) * Rnd + 48)
		s = Chr(b)
	Else ' genere une lettre minuscule
		b = cByte((122 - 97 + 1) * Rnd + 97)
		s = Chr(b)
	End If

	Password = Password & s

Next i

GeneratePassword = Password

End Function

 

Ensuite il suffit de taper dans la cellule voulue:

 

=GeneratePassword(6)

 

pour recuperer un mot de passe de 6 caracteres

Lien vers le commentaire
Partager sur d’autres sites

c'est pas faux! :P

 

je pensais juste que si il ne connait pas du tout le vb, ma solution bien qu'un peu plus longue et non optimiser niveau code, était plus abordable pour un débutant vb.

 

et surtout elle permet de maitriser les charactères que l'on accepte ou pas.

 

mais bon, les 2 marches.

 

A+

Lien vers le commentaire
Partager sur d’autres sites

  • Tonton a modifié le titre en [Résolu] Générateur de mots de passe

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...