Extraire Nom et prénom dans une chaine de caractères

Bonjour à tous,

J'aimerais séparer les noms et prénoms dans une chaine de caractère de la forme LENOM DE-FAMILLE Etleprénom.

J'ai trouvé cette fonction qui semble fonctionner pour les noms de familles:

Function LE_NOM(CC As String) As String
Dim sESPACE As String
Dim sNOM As String
sESPACE = Chr(32)
sNOM = Left(CC, (InStr(1, CC, sESPACE)))
LE_NOM = sNOM
End Function

Je galère pour récupérer le prénom...

J'aimerais peut être trouver une fonction qui fait l'inverse de concatener: enlever LENOM DE-FAMILLE dans la chaine de départ... Ou peut être avez vous une autre idée??

Merci pour votre aide.

Je vois que ma fonctionne ne marche pas pour les noms de famille composés séparés par un espace...

Bonjour,

capture

En supposant que les prénoms composés sont séparés par un tiret :

Function RecupereNomPrenom(ByVal NomPrenom As String, ByVal Partie As Integer) As String

Dim TabNoms As Variant

     RecupereNomPrenom = ""
     TabNoms = Split(NomPrenom, " ")
     Select Case UBound(TabNoms)
            Case 1
                 If Partie = 0 Then
                    RecupereNomPrenom = TabNoms(0)
                 Else
                    RecupereNomPrenom = TabNoms(1)
                 End If
            Case 2
                 If Partie = 0 Then
                    RecupereNomPrenom = TabNoms(0) & " " & TabNoms(1)
                 Else
                    RecupereNomPrenom = TabNoms(2)
                 End If
     End Select

End Function

Bonjour,

Essaie :

Prenom = Mid(Ma_Chaine, InStrRev(Selection, " "), 9 ^ 9)

Bonjour,
Une autre proposition.
Les prénoms composés doivent comportés des tirets (Jean-Eric) !
Cdlt.

capture d ecran 2023 09 24 162852

Bonjour à tous, merci pour vos propositions:

@Jean-Eric: je ne pense pas pouvoir me servir de ta proposition, car je suis dans une macro, et je dois manipuler des chaines de caractères.

Je vais essayer les deux autres propositions...

@DANIELC. Merci beaucoup, ta formule fait bien le taf: Enlever le nom de famille à ma chaine comportant nom de famille et le prénom.

Du coup @EricK, je ne vais pas essayer ta méthode, merci quand même.

Quelqu'un a une idée pour corriger mon code, pour que les noms de famille composés séparés par un espace (mais tout en majuscule fonctionne)... Cela fonctionne avec un tiret, mais pas un espace...

Essaie :

  Prenom = Mid(CC, InStrRev(Selection, " "), 9 ^ 9)
  Nom = Replace(CC, Prenom, "")

Daniel

@Jean-Eric,

Bonjour,

prénom :

=TEXTE.APRES(F11;" ";-1)

Daniel

@Daniel C

Merci encore DanielC.

Tes deux formules marchent très bien dans 90% des cas. Mais pour certaines personnes, cela ne fonctionne pas (dans le nom de famille, il colle nom de famille et prénom, et renvoie le prénom vide. Pourtant, le format de ces personnes est bien le bon: nom de famille en majuscule et prénom avec seulement la première lettre en majuscule... Sans difficultés autre (ni nom de famille composé, ni prénom composé, ni autre chose). J'ai bien vérifié que dans ces personnes, il y a bien un seul espace entre nom de famille et prénom. Je ne comprends pas ...

J'ai trouvé, il y avait un espace à la fin du prénom...

Rechercher des sujets similaires à "extraire nom prenom chaine caracteres"