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


Messages recommandés

Posté(e) (modifié)

Salut scuny,

 

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.

Eh wai mais le probleme avec ta methode, c'est qu'elle necessite un bouton ou autre control et qu'elle est moins "portable"

Avec la fonction que j'ai donné, il met juste =GeneratePassword(le nombre de caractere voulu) dans nimporte quelle cellule et ca lui genere un mot de passe...

 

Et je pense qu'une simple boucle est plus abordable que 3 Sub

Pour les types de caracteres, ici j'ai mis les plages a-z, A-Z et 0-9 reparties de maniere aleatoire, pour avoir d'autre caracteres il suffit d'ajouter deux lignes genre

		ElseIf I2 = 2 then
		b = cByte((47 - 33 + 1) * Rnd + 33)
		s = Chr(b)

 

Autre petit souci, celui qui tombe sur ta macro pourra tres facilement retrouver les mots de passes :P

Remarque s'il tombe sur le classeur on est tous les 2 dans la m.... lol

 

++

Modifié par sebdraluorg

Posté(e)

oui! ô mon maitre! :P

 

pour être totalement honnête, je n'avais pas penser a le faire via une boucle. :P

 

bon, pas grave! abondance de bien ne nuit pas! :P

 

 

A+

Posté(e)
Avec la fonction que j'ai donné, il met juste =GeneratePassword(le nombre de caractere voulu) dans nimporte quelle cellule et ca lui genere un mot de passe...
Question bête... S'il met cette fonction comme valeur de cellule, qu'il ferme son fichier puis qu'il le rouvre, est-ce que ça va lui recalculer de nouvelles valeurs ?
Posté(e)
Question bête... S'il met cette fonction comme valeur de cellule, qu'il ferme son fichier puis qu'il le rouvre, est-ce que ça va lui recalculer de nouvelles valeurs ?
Eh non il ne "recalcule" pas les cellules au lancement (heureusement d'ailleurs...)

 

 

++

Posté(e)

Question bête... S'il met cette fonction comme valeur de cellule, qu'il ferme son fichier puis qu'il le rouvre, est-ce que ça va lui recalculer de nouvelles valeurs ?

 

 

si on veut rigoler un peu on peu le faire! :P mais bon! :P:P

 

sinon a l'intention de ceux qui passeraient plus tard:

 

les 2 macros marchent sans pb.

elles n'ont pas la même philosophie.

 

-----

 

celle de sebdraluorg est plus courte et utilise "une boucle" pour fonctionner, mais surtout elle est complêtement autonome par rapport au programmeur.

dans cette état elle fixe un pass a 7 charactères. on pourrait via une autre boucle du meme type mattre un nombre aléatoire.

enfin, elle est concu actuellement pour faire pass après pass.

 

------

 

la mienne est plus lourde a mettre en oeuvre, mais elle vous permet de définir ce qui est acceptable ou pas dans votre password.

la longueur du password est également aléatoire mais compris entre 2 valeurs.

la mienne est prévue non pas pour faire un pass puis un autre, mais pour faire des listes complêtes.

 

------

 

voila. j'éspère que ces explications vous aurons éclairé.

 

A+

 

 

ps: seb? un tit commentaire? ou je n'ai rien oublié? :P

Posté(e)
ps: seb? un tit commentaire? ou je n'ai rien oublié?
Salut scuny :P

 

Eh non appart que ma fonction n'est pas fixee a 7 caracteres mais on lui defini le nombre de caracteres voulu en l'appelant...

Sinon en effet les 2 marchent et c'est bien d'avoir deux manieres differentes apres chacun choisis celle qui l'arrange le mieux

 

Mais vu qu'on est sur le site de l'optimisation, j'aurais quand meme quelques ptites suggestions pour ton code:

 

Utilise un Select case plutot que 5 ou 6 fois If ValPass =... c'est plus clair et plus simple a gerer

 

Pour ValPass et ValTotal il n'y a pas d'interet ici de les declarer en public ni meme en private d'ailleurs il est preferable de les declarer dans ta sub principal et de les passer en parametres aux sub ou fonctions qui necessite cette variable.

 

Dernier petit truc, essai d'eviter les GoTo :P

 

 

++

Posté(e)

ha oui!

 

c'est vrai ca! je n'y pense jamais au "select case". :P

 

quand au "goto", c'est hummmmm comment dire .... un vieux reflexe datant du batch! :P

 

sinon oui, le passage en paramètre est mieux, mais bon, je suis très loin d'avoir ton niveau! :P

 

 

un jours peut être .... :P

 

 

a plus.

  • 2 ans après...
Posté(e)

Bonjour tout le monde,

 

sebdraluorg, dans ta solution il reste des caractère du genre { ou : comment les supprimer pour n'avoir que des lettres et des chiffres ?

 

merci en tout cas pour ce scrip bien utile !

Posté(e)

salut

 

 

 

pour savoir si tu as a un nombre dans une chaine tu peux utiliser "isnumeric"

 

ex: a = charactère_1_de_ma_chaine   isnumeric(a) renvoie false si pas un nombre.

 

le pb c'est que je ne sais pas faire la même chose pour l'alphabet.

 

 

 

note: que l'on peut s'en sortir avec "replace" et une boucle traitant tu les cas que tu as défini. ==> pb! si tu oublie un charactère, il ne sera pas traiter.

 

==> ca fait un paquet de possibilité en français! ( et je ne parle pas d'autre langues)

 

 

 

sinon voila un lien intérressant. (bien que je n'y ai pas trouvé la réponse a ton problème)

 

http://silkyroad.developpez.com/VBA/Manipu...inesCaracteres/

 

sinon voila un autre lien. LA REF POUR EXCEL. (a mon sens)

 

http://www.excelabo.net/taxonomy/term/1513

 

 

 

désolé de ne pouvoir t'aider plus que ça.

Posté(e) (modifié)

oups.

 

 

 

je n'étais pas réveiller hier soir.

 

voila une solution.

 

 

 

Option Compare Text 'doit se déclarer au niveau du module si tu veux
'que la casse ne soit pas prise en compte sinon tu devras faire un test sur la plage "[a-z]" et un autre sur la plage "[A-Z]"

Sub TestPassword()


Dim ValPassword
Dim VerifText As Boolean
Dim verifNb As Boolean
Dim Ctrl

ValPassword = InputBox("ess")

a = Len(ValPassword) 'connaitre la longueur du password
For i = 1 To a 'faire un boucle sur chaque élément du password

Ctrl = Mid(ValPassword, i, 1) 'décomposé le password


Verif = Ctrl Like "[a-z]" 'verifie l'appartenance a la plage a - z
verifNb = Ctrl Like "#" 'verifie l'appartenance a la plage 0 - 9

If Verif = False And verifNb = False Then 'verifier le resultat
MsgBox "saisie password incorect"
Exit Sub
End If
Next


End Sub

 

 

 

Note que tu peux en faire une fonction.

Modifié par scuny

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...