Générer mot de passe excel aléatoire

[Résolu/Fermé]
Signaler
-
Messages postés
17602
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
23 octobre 2021
-
Bonjour,

Sous excel:
Colonne A: Nom
Colonne B: Prénom
Colonne C: @mail

Mais pour la colonne D, je souhaiterais générer un mot de passe aléatoire plutôt complexe, du type: qFH9rL6
Le tout automatiquement quand on rentre les 3 informations des colonnes A, B et C!
Quel formule dois-je utiliser en colonne D?

Merci

Cordialement,

Anonyme
A voir également:

5 réponses

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 654
Bonjour,
Il n'est pas évident de "bricoler" une formule qui te donne un résultat aléatoire. Par VBA, une macro te ferait ça sans souci. Néanmoins, en bidouillant à partir de la formule ALEA() d'excel, on peux obtenir un résultat :
=STXT(A1;ARRONDI.SUP(ALEA()*62;0);1)
En A1 tu places l'alphabet majuscule les chiffres de 0 à 9 et l'alphabet minuscule, tout collé sans espaces :
ABCDE...0123....abcde...
en B1 la formule :
=STXT(A1;ARRONDI.SUP(ALEA()*62;0);1)
Pour obtenir 7 caractères aléatoires :
Il faut placer 7 fois la même formule avec & entre 2 :
=STXT(A1;ARRONDI.SUP(ALEA()*62;0);1)&STXT(A1;ARRONDI.SUP(ALEA()*62;0);1)&STXT(A1;ARRONDI.SUP(ALEA()*62;0);1)&STXT(A1;ARRONDI.SUP(ALEA()*62;0);1)&STXT(A1;ARRONDI.SUP(ALEA()*62;0);1)&STXT(A1;ARRONDI.SUP(ALEA()*62;0);1)&STXT(A1;ARRONDI.SUP(ALEA()*62;0);1)
Pour étirer ta formule n'oublie pas de placer des signes $ comme ceci $A$1 en lieu et place de chaque A1.
Le problème de cette formule est qu'elle est "volatile". Donc à chaque nouvelle saisie dans ta feuille de calcul, le résultat change.
Tu peux contourner ce problème en faisant : copier / Collage spécial "valeur" soit manuellement soit par macro automatique, très simple d'utilisation :
Dans un module VBA tu insères ce code :
Sub Macro1()
ActiveCell.Copy
ActiveCell.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
Tu cliques sur la cellule ou tu viens d'indiquer la formule et appuies sur ALT + F8 choisir Macro1 et exécuter.
Cette macro copie / colle spécial dans la cellule à droite de la cellule active...
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 654
Re-
J'ai oublié de traiter le SI A B et C sont remplies....
La formule adaptée à ton cas (ici j'ai placé mes alphabets+nombres en Feuil2 cellule A1 pour ne pas géner sur ta feuille de calcul) :
=SI(ET(A1<>"";B1<>"";C1<>"");STXT(Feuil2!$A$1;ARRONDI.SUP(ALEA()*62;0);1)&STXT(Feuil2!$A$1;ARRONDI.SUP(ALEA()*62;0);1)&STXT(Feuil2!$A$1;ARRONDI.SUP(ALEA()*62;0);1)&STXT(Feuil2!$A$1;ARRONDI.SUP(ALEA()*62;0);1)&STXT(Feuil2!$A$1;ARRONDI.SUP(ALEA()*62;0);1)&STXT(Feuil2!$A$1;ARRONDI.SUP(ALEA()*62;0);1)&STXT(Feuil2!$A$1;ARRONDI.SUP(ALEA()*62;0);1);"")
Voilà qui est mieux.
Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
623
Bonjour Pijaku,

Ta solution est excellente.
Je me pose juste une question. Le mot de passe va être modifié à chaque recalcul ce qui peut poser un problème à notre demandeur anonyme s'il veut conserver la liste des mots de passe attribués à chaque personne.

On peut peut-être lui conseiller de faire une liste des personnes dans sa première feuille, de recopier ta formule en face chaque personne puis de figer le calcul du mot de passe en appuyant sur F9 (dans le champ de saisie de la formule).

Il aura bien ainsi un mot de passe aléatoire mais qui ne change plus.

Qu'en penses-tu ?
EDIT : Au temps pour moi, je viens de voir que tu en as parlé dans ton premier post ...
A+
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 654
Superbe le F9 dans la barre de formule, je ne connaissais pas...
Très bonne idée
Messages postés
17602
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
23 octobre 2021
4 789
Salut,

Je n'ai pas vu passer cette discussion, mais pour ceux qui pourraient être intéressé

=SI(ET(A2<>"";B2<>"";C2<>"");INDEX(Minus;EQUIV(GRANDE.VALEUR(Tirag;ENT(ALEA()*9)+1);Tirag;0))&INDEX(Majus;EQUIV(GRANDE.VALEUR(Tirag;ENT(ALEA()*9)+1);Tirag;0))&INDEX(Majus;EQUIV(GRANDE.VALEUR(Tirag;ENT(ALEA()*9)+1);Tirag;0))&ENT(ALEA()*9)+1&INDEX(Minus;EQUIV(GRANDE.VALEUR(Tirag;ENT(ALEA()*9)+1);Tirag;0))&INDEX(Majus;EQUIV(GRANDE.VALEUR(Tirag;ENT(ALEA()*9)+1);Tirag;0))&ENT(ALEA()*9)+1;"")

Les formules complexes sont parfois parasitées mieux vaut récupérer le fichier joint

https://www.cjoint.com/?kjvLensG76

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 654
Salut,
Merci Mike. Effectivement très bonne formule. Rien à dire...
Bonne journée à toi
Messages postés
17602
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
23 octobre 2021
4 789
Salut pijaku,

On pourrait trouver d'autres possibilités, et chaque formule à ces spécificités, celle qui tu as donnée n'est pas mal est simple, de plus excellente pour le demandeur, la mienne serait plus appropriée pour un tirage au sort de nom ou équipe etc … que j'ai adaptée

La discussion était pertinente et s’est enrichie de deux possibilités

Bonne journée à toi

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)