XL 2013 Extraction d'Initiales Complexe

  • Initiateur de la discussion Initiateur de la discussion MACx
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MACx

XLDnaute Occasionnel
Bonjour,
Voici un problème que je rencontre avec l'extraction d'initiales avec des noms complexes:
[table="width: 500, class: grid, align: left"]
[tr]
[td]Nom[/td]
[td]Initiales[/td]
[/tr]
[tr]
[td]Mon Excel-Downloads[/td]
[td]MED[/td]
[/tr]
[tr]
[td]Excel[/td]
[td]E[/td]
[/tr]
[tr]
[td]Excel-Downloads[/td]
[td]ED[/td]
[/tr]
[/table]

Je cherche à extraire les initiales des noms contenus dans une colonne, mais certains noms sont compliqués. Càd qu'il faut tenir compte des noms simples des noms composés avec ou sans préfixe.

J'ai essayé un truc du genre:
Code:
=SIERREUR(SI(STXT([@nom];CHERCHE(" ";[@nom];1);1)=" ";GAUCHE([@nom];1)&STXT([@nom];CHERCHE(" ";[@nom];1)+1;1))&SI(STXT([@nom];CHERCHE("-";[@nom];1);1)="-";STXT([@nom];CHERCHE("-";[@nom];1)+1;1));GAUCHE([@nom];1))

Formule qui fonctionne avec les noms composés avec préfixe (donc un espace et trait d'union), mais ne fonctionne pas avec noms composés sans préfixe.

Si je ne suis pas assez clair, n'hésitez pas à me le dire svp.

Merci d'avance de votre aide... Et bonnes fêtes de fin d 'année à vous ! 🙂
 
Re : Extraction d'Initiales Complexe

Bonjour,
Une suggestion : commence avec une formule substitue qui remplace les espaces par des tirets, tu n'auras ainsi que des tirets à traiter.
Ce qui donnerait quelque chose du genre :

Code:
=STXT(SUBSTITUE([@Nom];" ";"-");1;1)&SIERREUR(STXT(SUBSTITUE([@Nom];" ";"-");CHERCHE("-";SUBSTITUE([@Nom];" ";"-"))+1;1);"")&SIERREUR(STXT(SUBSTITUE([@Nom];" ";"-");CHERCHE("-";SUBSTITUE([@Nom];" ";"-");CHERCHE("-";SUBSTITUE([@Nom];" ";"-"))+1)+1;1);"")

Cordialement
 
Dernière édition:
Re : Extraction d'Initiales Complexe

Bonjour, deux autres possibilités par vba, piste à creuser.



Function initiale(c As Range) As String
b = Len(c)
For a = 1 To b
If Asc(Mid(c, a, 1)) < 97 Then
If Asc(Mid(c, a, 1)) <> 45 And Asc(Mid(c, a, 1)) <> 32 Then
d = d & Mid(c, a, 1)
End If
End If
Next
initiale = Trim(d)
End Function


ou

Sub rgxp()
Dim reg As Object
Dim n, nn
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.ignorecase = True

reg.Pattern = "[A-Z]*"
For a = 2 To Feuil1.UsedRange.Rows.Count
d = ""
Set nn = reg.Execute(Feuil1.Cells(a, 1))
For Each n In nn
d = d & Left(n, 1)
Next n
Feuil1.Cells(a, 3) = Trim(d)
Next a
End Sub


 
Re : Extraction d'Initiales Complexe

Merci pour le... coup de main Dugenou ! 😉
Merci à toi aussi CPk. Je voulais justement éviter les macros pour ce genre de trucs ms je garde ta formule dans un coin, je suis sûr qu'elle va me servir 😉
Bonnes fetes de fin d'année à vous.
MC
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2010 Etiquettes
Réponses
12
Affichages
2 K
Retour