Extraire les initiales du nom et du prénom

Aloha

XLDnaute Accro
Bonjour,

Je ne me rappelle plus comment faire pour extraire les initiales de Pierre DUPONT.

Il faut donc chercher après le caractère suivant l'espace et dans la formule on utilise les fonctions CHOISIR et STXT, si mes souvenirs sont bons, mais je n'y arrive pas.

Merci pour toute aide.

Aloha
 

hoerwind

XLDnaute Barbatruc
Re : Extraire les initiales du nom et du prénom

Bonjour,

Prénom et nom en A1
=GAUCHE(A1)&STXT(A1;CHERCHE(" ";A1)+1;1)

Cette formule ne fonctionne pas s'il y a des prénoms composés séparés par un espace.
Pierre Hubert ne fonctionne pas, Pierre-Hubert bien.
 

Aloha

XLDnaute Accro
Re : Extraire les initiales du nom et du prénom

Bonjour,

J'ai désespéré trop vite et j'ai tout de même trouvé la solution:
=GAUCHE(A3;1)&STXT(A3;TROUVE(" ";A3)+1;1)

...à moins qu'il n'y ait une solution plus "élégante".

Bonne après-midi

Aloha
 

Aloha

XLDnaute Accro
Re : Extraire les initiales du nom et du prénom

Bonjour "hoerwind",

désolé, je n'avais pas vu ton message (ce n'est pas la première fois que je poste une réponse et que je vois plus tard qu'une autre réponse s'est glissée entre le message auquel j'ai répondu et le mien; je ne comprends pas).
Je l'ai vu parce que je suis venu voir ma propre réponse parce que j'ai maintenant besoin de cette formule et que je ne me la rappelle pas trop.
Je constate qu'il y a donc 2 possibilités pour atteindre le but fixé.

Merci encore

Bonne journée

Aloha
 

Dull

XLDnaute Barbatruc
Re : Extraire les initiales du nom et du prénom

Salut Aloha, hoerwind, le Forum

Une solution VBA

Code:
Sub IniTiale()
Dim a As String, R As String
R = Feuil1.[A3]
a = Left(R, 1) & Mid(R, InStr(1, R, " ") + 1, 1)
MsgBox "Initiale de " & [A3] & " " & Chr(10) & a
[A1] = a
End Sub
EDITION: Super Fonction JeanMarie:)
Bonne Journée
 
Dernière édition:

JeanMarie

XLDnaute Barbatruc
Re : Extraire les initiales du nom et du prénom

Bonjour Haloa, hoerwind, Dull

Une Function pour les Prénom et Nom composés.
Code:
Public Function Initiale(Chaine As String) As Variant
Dim I As Byte
Dim Sous_Chaine As Variant
Chaine = Replace(Chaine, "-", " ")
Chaine = Replace(Chaine, "'", " ")
Chaine = " " & Chaine
Sous_Chaine = Split(Chaine, " ", -1)
   If UBound(Sous_Chaine) = 0 Then
      Initiale = ""
   Else
      Initiale = ""
      For I = 0 To UBound(Sous_Chaine)
         Initiale = Initiale & Left(Sous_Chaine(I), 1) & " "
      Next I
      Initiale = Replace(Initiale, " ", "")
   End If
End Function
Après avoir copié le code dans un module, on écrit dans une cellule la formule suivante =INITIALE(...), ... représente la cellule contenant le Nom et le prénom.

@+Jean-Marie
 

Aloha

XLDnaute Accro
Re : Extraire les initiales du nom et du prénom

.. et avec autant de retard je réponds à "Dull"

Bonjour,

Ton code fonctionne.
Son désavantage par rapport à une fonction est évidemment qu'on ne peut pas l'utiliser dans une formule, ce qui serait bien pratique

Bonne journée

Aloha
 

Tata Yoyo

XLDnaute Nouveau
Re : Extraire les initiales du nom et du prénom

Avec une "petite" formulette, pour extraire les six premiers caractères du nom et les deux premieres lettres du prénom ou les initiales de prénoms composés, afin de construire un login
A1 = nom
B1 prénom fonctionne avec deux prénoms, soit séparés par un - soit par un espace

=CONCATENER(MINUSCULE(GAUCHE(A1;6));SI(NB(CHERCHE(" ";B1))=1;MINUSCULE(GAUCHE(B1;1)&DROITE(GAUCHE(B1;CHERCHE(" ";B1)+1);1));SI(NB(CHERCHE("-";B1))=1;MINUSCULE(GAUCHE(B1;1)&DROITE(GAUCHE(B1;CHERCHE("-";B1)+1);1));MINUSCULE(GAUCHE(B1;2)))))

il y a peu être plus court...
 

Vince1725

XLDnaute Nouveau
Bonjour, après avoir pas mal galéré j'ai sorti la formule suivante qui a l'avantage de ne pas recourir à une macro. Elle extrait les initiales d'un prénom, simple ou composé séparé d'un espace ou d'un "-" et renvoie le tout en majuscule : (votre cellule avec le prénom en K8 )

=MAJUSCULE(SIERREUR(GAUCHE(SUPPRESPACE($K$8);1)&STXT(SUPPRESPACE($K$8);CHERCHE(" ";SUPPRESPACE($K$8);1)+1;1);SIERREUR(GAUCHE(SUPPRESPACE($K$8);1)&STXT(SUPPRESPACE($K$8);CHERCHE("-";SUPPRESPACE($K$8);1)+1;1);GAUCHE(SUPPRESPACE($K$8);1))))

Ainsi, "jean Bernard", "JEAN-BERNARD", "JeaN bernard" "jean-bernard" ... renvoient tous "JB"


En espérant que cela servira à quelqu'un.

Notes :
1 -
Explications : J'ai utilisé le "SIERREUR" car EXCEL renvoie une erreur avec une imbrication SI "classiques" avec STXT et CHERCHE. En effet CHERCHE renvoie un "#VALEUR" si elle ne trouve pas l’occurrence recherchée, ce qui ne peut être interprété par SI comme un résultat de test genre VRAI ou FAUX.
2 - On peut alléger le truc en passant par une cellule intermédiaire pour retirer préalablement les espaces de chaque côté avec SUPPRESPACE et ainsi éviter de le répéter 7 fois dans la formule.
3 - Seuls les espaces ou tirets doublés ou mêlés vont induire une erreur genre "Jean Bernard", "Jean--Bernard" ou "Jean - Bernard".
4 - On peut aussi limiter les erreurs par un autre moyen : la validation des données : N'autoriser que les lettres par exemple, ce qui évite de chercher des "-" ou les utilisateurs farfelus (j'en connais un paquet) qui vont mettre "jean*bernard"par exemple.
 

Discussions similaires

Statistiques des forums

Discussions
312 386
Messages
2 087 850
Membres
103 669
dernier inscrit
Anne Sicard