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:

Bell@tor

[RESOLU] generateur de mot de passe

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

Partager ce message


Lien à poster
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+

Partager ce message


Lien à poster
Partager sur d’autres sites

oui merci mais en VB je suis nul ! (et pourtant c'est pas le language le plus compliqué) tu peux me donner un exemple de code ?

merci

Modifié par Bell@tor

Partager ce message


Lien à poster
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 +

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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+

Partager ce message


Lien à poster
Partager sur d’autres sites
minute quoi.

 

j'arrive.

 

le

up
ne veut pas dire que je suis impatient, mais c'est juste pour éviter que mon poste sombre vers le fond du forum... désolé de t'avoir paru désagréable !

 

sinon merci à vous deux scuny et sebdraluorg

A+

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×