XL 2016 Extraite lettre de cellule - RESOLU

gigiwin

XLDnaute Occasionnel
Bonjour,

Dans mon tableau j'ai en colonne G une liste de NOM Prénom.
Il me faut extraire les 3 premières lettres du PRÉNOM et du NOM, et mettre le tout en majuscule.
Par exemple DUBOIS Marie--->MARDUB.

J'ai bien trouvé la formule qui me fais cela:
=(MAJUSCULE(STXT(G2;TROUVE(" ";G2)+1;3))&(GAUCHE(G2;3)))
mais si j'ai une cellule avec NOM NOM Prénom; cela ne fonctionne pas. Et là, je sèche...
Que dois-je modifier au cas ou il y a 2 espace dans la cellule, mais que ça fonctionne aussi si il n'y en a qu'un?

Merci de votre aide.
 

Pièces jointes

  • 6 lettres.xlsx
    10.6 KB · Affichages: 23

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @job75,
Moi j'attends qu'un XLDnaute courageux me fournisse la liste des 33000 prénoms recensés en France.

Courageux, je ne sais pas. J'ai déjà essayé. J'ai fait choux blanc. Je n'avais pas trouvé de liste toute faite et exploitable. Mais même avec cette liste, on ne résoudrait pas tous les cas (beaucoup de noms propres sont des prénoms). Et les prénoms français ne suffiraient pas. Je suis dans une boite avec des gens de bien d'autres horizons que la France...
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Encore mal lu la question :mad:. Dans la v1, j'ai d’abord extrait les trois lettres du nom suivies des trois lettres du prénom. C'était le contraire qui était demandé !

Donc voici la v2 qui devrait être conforme à la demande.
La formule en H2 à tirer vers le bas est toujours matricielle.
 

Pièces jointes

  • gigiwin- 6 lettres- v2.xlsx
    14.4 KB · Affichages: 4

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

J'ai pris mon courage à deux mains pour nettoyer un peu le fichier.
Les prénoms sont classés par taille. J'ai laissé le sexe, ça peut aider au choix

@job75 : il faudra me dire lesquels ont été retenus pour tes futurs arrières-petits-enfants qui vous bientôt pointer le bout de leur petit nez :D
 

Pièces jointes

  • mapomme- Liste Prénoms France- v1.xlsx
    660.1 KB · Affichages: 13
Dernière édition:

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
@job75 : le voilà ton fichier mon ami et pleure plus :D :D :eek::p
T'espas loin du compte ; c'est le fichier national des prénoms en France depuis 1900
j'ai trié supprimé les doublons ....... il y avait ....grosso 700 000 lignes !!
J'ai supprimé 1200 lignes , des caractères euh ??? bizarres, cela devait être des prénoms commençant avec E et A maj avec tréma , excel reconnait pas
comme volumineux j'ai mis chez mon hébergeur : Liste Prenoms
 

job75

XLDnaute Barbatruc
J'ai supprimé mon message car je n'avais pas vu ton post #20 mapomme.

Un grand merci cette liste des prénoms va être très utile.

Je l'utilise dans le fichier joint avec cette fonction VBA :
VB:
Function PrenomNom$(t$, liste As Range, n%)
Dim s, i%, j As Variant, k As Variant
s = Split(t)
For i = 0 To UBound(s)
    If Len(s(i)) >= n And (j = "" Or k = "") Then
        If Application.CountIf(liste, s(i)) Then
            If j = "" Then j = i
        Else
            If k = "" Then k = i
        End If
   End If
Next
PrenomNom = UCase(IIf(j = "", "", Left(s(j), 3)) & IIf(k = "", "", Left(s(k), n)))
End Function
Le code doit bien sûr être placé impérativement dans un module standard.

A+
 

Pièces jointes

  • PrenomNom(1).xlsm
    650.3 KB · Affichages: 9

patricktoulon

XLDnaute Barbatruc
j'avoue ne pas comprendre la raisonnement là
Capture.JPG
 

patricktoulon

XLDnaute Barbatruc
bonjour mapomme
les abréviation peuvent être identiques pour deux nom/prénom différent avec les 3 premières lettres du prénom et du nom en excluant les mots de liaison du genre "de la" "du" ,etc...

conclusion si le besoins est d"encoder (indexer) des personnes dans un tableau alors c'est pas bon

d'autre part
en quel honneur on détermine "henry" comme un prénom et non comme un nom car ça existe

bref la capture parle d'elle même je crois

et je parle même pas de ceux qui ont un prénom comme nom de famille
du genre
martin
bernard
thomas
richard
etc...etc....
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

C'est bien ce que je disais plus haut. Je pense qu'aucune formule, aucune macro n'est capable de se sortir de toute les situations. Il y a des cas indécidables comme celui que tu cites. Ex: Martin Pierre. Même l'IA que les journalistes et publicistes invoquent continuellement ne pourra pas décider (AMHA).
Pour ma formule, j'ai supposé que les noms étaient écrits en majuscule et les prénoms en minuscule sauf la première lettre (au vu du fichier du questionneur).
 

patricktoulon

XLDnaute Barbatruc
oui a condition que ce principe(majuscule/minuscule) soit respecté

perso une toute petite macro function supprimant les mots de liaison splittant et gardant que le 3 1er de chaque ou tout si moins de 3 char, serait plus judicieux

et même là encore ils risque d'avoir des doublons mais on aurait plus le soucis de (nom/prénom)
;)
 

job75

XLDnaute Barbatruc
Quand le nom est un prénom il est évident qu'à part les majuscules rien ne permet de le distinguer.

Mais ma fonction dans ce cas ne renvoie que 3 caractères.

Il suffira de filtrer sur le nombre de caractères pour mettre en évidence ces anomalies, fichier (2) :
VB:
Sub Filtrer()
[A1].CurrentRegion.AutoFilter 3, 3
End Sub
 

Pièces jointes

  • PrenomNom(2).xlsm
    651.7 KB · Affichages: 1

Discussions similaires

  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
797

Statistiques des forums

Discussions
315 059
Messages
2 115 807
Membres
112 588
dernier inscrit
sealy