Extraction initiales plusieurs prenoms

Bonjour à Tous et joyeuses fêtes de fin d'année,

Malgré mes recherches, et ne maitrissant pas assez Excel, je n'ai pas réussi à trouver de solution au problème ci-dessous :

J’ai dans la colonne A des prénoms (jusqu’à 6) séparés, lorsqu’il y en a au moins 2 par un tiret (ex : Michel-Pierre-Roger-Marcel). Je souhaite extraire les initiales de chaque prénoms, dans la colonne B, avec un point après chaque initiale (ex : M. P. R. M.) et dans une seconde version avec un point et un tiret entre chaque initiale (ex : M.-P.-R.-M.).

En vous remerciant par avance pour les solutions apportées,

Cordialement.

Michel

Bonjour

Avec une fonction

Banzai64 a écrit :

Bonjour

Avec une fonction

Bonsoir,

Merci à Bonzai64 pour sa macro, mais je ne maitrise pas du tout les macros et le langage qui va avec (personne n'est parfait ...)

Je suis plus sur les formules. J'avais commencé mon travail avec la formule suivante :

=GAUCHE(C4;1)&"."&STXT(C4;CHERCHE("-";C4)+1;1)&"."

Mais si je n'ai qu'un seul prénom cela m'indique : #valeur! et j'ai du mal à mettre une itération jusqu'à 6 prénoms.

Merci encore.

(Et désolé pour le titre en majuscule, mauvaise habitude de lire certaines choses en diagonale)

Bonjour,

Un essai formule valable jusqu'à 6 prénoms :

=SUBSTITUE(SUPPRESPACE(GAUCHE(A1)&" "&STXT(A1&"     ";TROUVE("µ";SUBSTITUE(A1&"     ";" ";"µ";1))+1;1)&" "&STXT(A1&"     ";TROUVE("µ";SUBSTITUE(A1&"     ";" ";"µ";2))+1;1)&" "&STXT(A1&"     ";TROUVE("µ";SUBSTITUE(A1&"     ";" ";"µ";3))+1;1)&" "&STXT(A1&"     ";TROUVE("µ";SUBSTITUE(A1&"     ";" ";"µ";4))+1;1)&" "&STXT(A1&"     ";TROUVE("µ";SUBSTITUE(A1&"     ";" ";"µ";5))+1;1));" ";".")&"."

Je te laisse tester

@+

Salut Thibo,

J'ai testé ta formule, mais chez moi ça ne fonctionne pas (Résultat = #VALEUR!). Regarde la feuille "Essai Thibo" du fichier ci-joint. Est-ce que je fais quelque chose d'incorrect ?

Salut Michel,

Pour ta demande avec des tirets - mais juste pour le plaisir de faire une formule, car la solution de Banzai était quand même excellente - je te propose une formule un peu plus compliquée que celle de Thibo, mais qui fonctionne chez moi, selon le fichier ci-joint.

=SI(NON(ESTERR(CHERCHE("-";$A2;CHERCHE("-";$A2;CHERCHE("-";$A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1)+1)+1)));GAUCHE(A2;1)&".-"&STXT($A2;CHERCHE("-";A2;1)+1;1)&".-"&STXT($A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1;1)&".-"&STXT($A2;CHERCHE("-";$A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1)+1;1)&".-"&STXT($A2;CHERCHE("-";$A2;CHERCHE("-";$A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1)+1)+1;1)&".-"&STXT($A2;CHERCHE("-";$A2;CHERCHE("-";$A2;CHERCHE("-";$A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1)+1)+1)+1;1)&".";SI(NON(ESTERR(CHERCHE("-";$A2;CHERCHE("-";$A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1)+1)));GAUCHE(A2;1)&".-"&STXT($A2;CHERCHE("-";A2;1)+1;1)&".-"&STXT($A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1;1)&".-"&STXT($A2;CHERCHE("-";$A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1)+1;1)&".-"&STXT($A2;CHERCHE("-";$A2;CHERCHE("-";$A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1)+1)+1;1)&".";SI(NON(ESTERR(CHERCHE("-";$A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1)));GAUCHE(A2;1)&".-"&STXT($A2;CHERCHE("-";A2;1)+1;1)&".-"&STXT($A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1;1)&".-"&STXT($A2;CHERCHE("-";$A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1)+1;1)&".";SI(NON(ESTERR(CHERCHE("-";A2;CHERCHE("-";A2;1)+1)));GAUCHE(A2;1)&".-"&STXT($A2;CHERCHE("-";A2;1)+1;1)&".-"&STXT($A2;CHERCHE("-";A2;CHERCHE("-";A2;1)+1)+1;1)&".";SI(NON(ESTERR(CHERCHE("-";A2;1)));GAUCHE(A2;1)&".-"&STXT($A2;CHERCHE("-";A2;1)+1;1)&".";GAUCHE(A2;1)&".")))))

Et pour le résultat sans tirets, en partant du résultat obtenu ci-dessus

=SUBSTITUE(C2;"-";" ")

A vous relire.

Bonsoir,

La formule proposée fonctionnait sur la base de prénoms séparés par des espaces.

Une adaptation pour le cas où les prénoms seraient séparés par des tirets ou des espaces :

=SUBSTITUE(SUPPRESPACE(GAUCHE(SUBSTITUE(A2;"-";" "))&" "&STXT(SUBSTITUE(A2;"-";" ")&"     ";TROUVE("µ";SUBSTITUE(SUBSTITUE(A2;"-";" ")&"     ";" ";"µ";1))+1;1)&" "&STXT(SUBSTITUE(A2;"-";" ")&"     ";TROUVE("µ";SUBSTITUE(SUBSTITUE(A2;"-";" ")&"     ";" ";"µ";2))+1;1)&" "&STXT(SUBSTITUE(A2;"-";" ")&"     ";TROUVE("µ";SUBSTITUE(SUBSTITUE(A2;"-";" ")&"     ";" ";"µ";3))+1;1)&" "&STXT(SUBSTITUE(A2;"-";" ")&"     ";TROUVE("µ";SUBSTITUE(SUBSTITUE(A2;"-";" ")&"     ";" ";"µ";4))+1;1)&" "&STXT(SUBSTITUE(A2;"-";" ")&"     ";TROUVE("µ";SUBSTITUE(SUBSTITUE(A2;"-";" ")&"     ";" ";"µ";5))+1;1));" ";".")&"."

@+

Salut Thibo,

Désolé d'insister mais je pense que ta nouvelle formule ne donne toujours pas le résultat escompté ou alors je ne sais pas l'utiliser ; j'ai essayé dans le fichier ci-joint de la placer en colonne D et ça ne marche, selon moi, pas dans tous les cas.

Bonnes salutations.

Bonsoir

Je vais te contredire Yvouille, la formule de Thibo fonctionne très bien

J'ai été voir ton fichier et la 'formule de Thibo" : A première vue elle semple identique à celle sur le forum

Mais en comparant caractère par caractère on s'aperçoit que les codes ASCII des espaces ne sont pas les mêmes

Ceux dans ton fichier ont un code de 160 et ceux de la formule de Thibo sur ce site à un code de 32

J'ai recopié la formule d'ici vers ton fichier et cela fonctionne très bien

je ne sais pas pourquoi "tes espaces" ont changé de code

Bonne nuit et Bonnes Fêtes

Bonjour à Tous,

Merci pour les solutions apportées par les uns et les autres. La formule de thibo du 27/12 fonctionne à merveille.

Merci à Yvouille pour sa formule bien que celle-ci soit trop longue pour mon Excel 2003, et à Banzai64 pour sa macro qu'il me faudra apprendre à comprendre.

Encore merci à Tous et joyeuses fêtes de fin d'année.

Michel

Merci Banzai pour ta précision.

J'avais uniquement copié et collé la formule inscrite dans le message de Thibo.

Je ne sais pas non plus comment elle a pu se transformer

Bonnes salutations

Rechercher des sujets similaires à "extraction initiales prenoms"