créer login 3+3

lolodelvo

XLDnaute Nouveau
Bonjour,
je suis nouveau sur le site et j'aimerais savoir comment on fait pour créer des login à partir de prénoms et de noms avec les 3 première lettres de ceux-ci.

Ex : Jean Dupont : jeadup
Carlos riaz : carria
Paul prévert : paupre

Quelqu'un a-t-il un code à me transmettre??
J'aimerais apprendre ensuite comment on fait pour connaître ces codes.
Y a-t-il un lien pour voir comment on les crée???

Merci pour vos conseils
 

CBernardT

XLDnaute Barbatruc
Re : créer login 3+3

Bonsoir lolodelvo, alex67800,

Une possibilité par formule.

C'est la réunion des 3 premières lettres de gauche du prénom avec les 3 mêmes du nom. Le tout mis en minuscule :

=MINUSCULE(GAUCHE(A2;3)&GAUCHE(B2;3))

Ici, le prénom est en A2, le Nom en B2 et la formule en C2.

Cordialement

Bernard
 

Staple1600

XLDnaute Barbatruc
Re : créer login 3+3

Bonsoir


Une autre formule : en A1: Jean Dupond
En B1
Code:
=MINUSCULE(STXT(D3;1;3)&STXT(D3;CHERCHE(" ";D3)+1;3))

renvoie : jeadup

Après les formules, le VBA ;)

Code:
Function creelogin(r As Range)
creelogin = LCase(Left(Split(r)(0), 3) & Left(Split(r)(1), 3))
End Function
Mode d'emploi

A1: Jean Dupond

B1: creelogin(A1) --> jeandup

PS: il faut copier le code VBA dans un module standard
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : créer login 3+3

Bonsoir à tous
Un développement de la procédure de Staple1600 pour éviter le renvoi d'une erreur pour cause d'argument vide et pour éliminer d'éventuels caractères indésirables comme é, à, ç et autres...
Code:
[COLOR="DarkSlateGray"]Function creelogin(r As Range) As String
Dim i As Long
   Application.Volatile
   If Not r.Find(" ") Is Nothing Then
      creelogin = LCase(Left(Split(r)(0), 3) & Left(Split(r)(1), 3))
      For i = 0 To 10
         creelogin = Replace(creelogin, Array("à", "â", "ç", "é", "ê", "è", "ë", "î", "ô", "û", "ü")(i), _
            Array("a", "a", "c", "e", "e", "e", "e", "i", "o", "u", "u")(i))
      Next i
   End If
End Function[/COLOR]
ROGER2327
#1922
 

Staple1600

XLDnaute Barbatruc
Re : créer login 3+3

Bonsoir Roger2327

Merci de corriger mon manque de perfection "vbaiste" ;)

En guise de mea culpa, une version utilisant regexp (perfectible car pas trouvé le bon pattern)
Code:
Function creelogin(r As Range)
Dim pn$, nm$, x$, RE As Object: x = r.Text

Set RE = CreateObject("VBScript.RegExp")

With RE
    .Global = True
    .IgnoreCase = True
    .Pattern = "(^\w+\b)|(\b\w+$)"
    Set Matches = .Execute(x)
End With

    pn = Matches(0): nm = Matches(1)
    creelogin = LCase(Left(pn, 3) + Left(nm, 3))
    
Set RE = Nothing
End Function
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : créer login 3+3

Re

Voici une version améliorée
(on peut choisir la casse du login et le nombre de caractères extraits - par défaut 3)

Pour tester , lancer la macro :TEST_CRELOG

Code:
Function crelog(ByVal txt As String, Optional longueur As Long = 3, Optional casse As Long) As String
Dim m As Object, p$, n$
With CreateObject("vbscript.regexp")
    .Global = True
    .IgnoreCase = True
    .Pattern = "(^\w+\b)|(\b\w+$)"
Set m = .Execute(txt)
End With
    p = StrConv(Left(m(0), longueur), casse)
    n = StrConv(Left(m(1), longueur), casse)
crelog = p & n
End Function
Code:
Sub TEST_CRELOG()
Dim s$
s = "jean dupond"
MsgBox crelog(s) [COLOR=Green]'casse et nombre de caractères non renseignés[/COLOR]
MsgBox crelog(s, 4, 1) [COLOR=Green]'majuscule[/COLOR]
MsgBox crelog(s, 3, 2) [COLOR=Green]'minuscule[/COLOR]
MsgBox crelog(s, 2, 3) [COLOR=Green]'nom propre[/COLOR]
End Sub

PS: mais cela reste perfectible car on peut saisir des caractères tel $ ou &
(bien qu'ils soient ignorés lors de l'extraction , ils comptent dans le nombre de caractères extraits
ce qui fausse la donne )
 
Dernière édition:

lolodelvo

XLDnaute Nouveau
Re : créer login 3+3

euh... oui, c'est super sympa. Je suis débutant donc vba, la macro et autres ne sont pas encore dans mon vocabulaire. J'aime cependant beaucoup la réponse de CBernardT et staple1600. Simple et efficace. Je ne demande cependant qu'à apprendre... Où puis-je puiser des infos concernant lse formules à inscrire ds les cellules??

Merci encore pour votre intérêt.
 

Discussions similaires

Réponses
7
Affichages
581

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz