Formule=Extraire les Majuscules d'un prénom composé

Bonjour Amis de l'Excel-ence,

Je reviens vers vous pour une petite question.

Sur un tableau EXCEL je renseigne en Col"E" un "Prénom" et un "NOM" (dans ce format)

Avec cette formule en col "B" =SI(E3="";"";GAUCHE(E3;1)&"."&STXT(E3;CHERCHE(" ";E3)+1;15)) je ressors bien la première lettre du prénom Suivi de "." et suivi du NOM

Ensuite dans la col "D" je ressors mes "Initiales" avec =SI(E2="";"";GAUCHE(E2;1)&"."&STXT(E2;CHERCHE(" ";E2)+1;1))

Cependant cela pose un problème avec les prénoms composés...

Exemple en ligne 4

en "B4" je voudrais que ce soit "J.J.DTRES" pour Jean-Jacques DTRES et en "D4" je voudrais avoir J-J.D

Voici ma feuille correspondante:

Merci d'avance pour votre temps!

Salut Willkaa,

une fonction personnalisée avec les formules idoines dans les colonnes ['B] et [D].
Les formules qui apparaissent ne ressemblent en rien à ce que j'avais écrit... foutus tableaux Excel...

Pour la colonne ['B]

=SI(E4="";"";Extract(LIGNE();2))

La fonction

Public Function Extract(ByVal iRow%, iIdx%)
'
Dim sItem$, sPr1$, Pr2$, sN$
'
Application.Volatile
'
sItem = Cells(iRow, 5)
sN = UCase(IIf(iIdx = 2, Right(sItem, Len(sItem) - InStr(sItem, " ")), Left(Split(sItem, " ")(1), 1)))
sPr1 = Left(sItem, 1) & "."
If InStr(sItem, "-") > 0 Then sPr2 = Left(Split(sItem, "-")(1), 1) & "."
Extract = sPr1 & sPr2 & sN
'
End Function

Ou alors, du pur VBA avec une macro événementielle ?


A+

13willkaa.xlsm (22.04 Ko)

Salut @Curilis57!

Merci pour ses code et formule!

Je n'avais pas saisi qu'il fallait que je mette la formule ET la macro !

Mais ça marche du tonnerre !

Un grand Merci à toi!

OOUUPPSS!!

Jusqu’à ce que je rentre dans mon classeur et il me modifie d'autre feuille!

Même si je rentre la fonction dans la feuille..j'ai peut être loupé quelques chose..

??

La fonction DOIT se trouver dans un module standard : Module1,... et non dans le module VBA de la feuille concernée...
Si ce n'est pas l'origine du problème...


A+

Hello,

Pour ne pas réinventer la poudre et utiliser ce que les gens de chez 'Crosoft veulent bien nous mettre à disposition :

En D4:

=SI(E4="";"";GAUCHE(E4;1)&SI(NON(ESTERREUR(CHERCHE("-";[@[Prénom NOM
(Colonnes à renseigner)]])));"-"&STXT([@[Prénom NOM
(Colonnes à renseigner)]];CHERCHE("-";[@[Prénom NOM
(Colonnes à renseigner)]];1)+1;1)&".";".")&STXT(E4;CHERCHE(" ";E4)+1;1))

et en B4 :

=SI(E3="";"";GAUCHE(E3;1)&"."&SI(NON(ESTERREUR(CHERCHE("-";[@[Prénom NOM
(Colonnes à renseigner)]])));STXT([@[Prénom NOM
(Colonnes à renseigner)]];CHERCHE("-";[@[Prénom NOM
(Colonnes à renseigner)]];1)+1;1)&".";"")&STXT(E3;CHERCHE(" ";E3)+1;15))

Bonjour à tous,

J'y vais également de ma petite proposition au moyen d'expressions régulières :

Function INITIALES(chaine As String) As String

Dim ExpReg As Object
Dim subdiv as Object
Dim i%

Set ExpReg = CreateObject("vbscript.regexp")
chaine = replace(chaine, " ", ".")

With ExpReg
    .Global = True
    .Pattern = "[A-Z]"
    If .test(chaine) Then
        .Pattern = "[A-Z\.-]"
        Set subdiv = .Execute(chaine)
        for i = 1 to subdiv.count
            INITIALES = INITIALES & subdiv(i).Value
        next i
    End If
End With

End function
Function GETMAJ(chaine As String) As String

Dim ExpReg As Object
Dim subdiv as Object
Dim i%

Set ExpReg = CreateObject("vbscript.regexp")
chaine = replace(replace(chaine, "-", "."), " ", ".")

With ExpReg
    .Global = True
    .Pattern = "[A-Z]"
    If .test(chaine) Then
        .Pattern = "[A-Z\.]"
        Set subdiv = .Execute(chaine)
        for i = 1 to subdiv.count
            GETMAJ = GETMAJ & subdiv(i).Value
        next i
    End If
End With

End function

Pour avoir sur la feuille :

=GETMAJ(E4) 'en B4
=INITIALES(E4) 'en D4

Cdlt,

Bonjour à Vous 3,

Alors j'ai essayé les trois solutions, et celle qui marche le mieux (n'étant pas un adepte du VBA..) j'ai opté pour la simple formule dans ma case (Joyeux Noël). Celle de Curulis57 me change mes valeurs dans mes autres feuilles (Même en me mettant dans un module) et 3GB Idem j'ai intégré les code et la formule mais je dois pas savoir l'intégré,

Donc je vous remercie tous les trois pour votre savoir!

A très bientôt!

Rechercher des sujets similaires à "formule extraire majuscules prenom compose"