Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Extraction d'Initiales Complexe

MACx

XLDnaute Occasionnel
Bonjour,
Voici un problème que je rencontre avec l'extraction d'initiales avec des noms complexes:
NomInitiales
Mon Excel-DownloadsMED
ExcelE
Excel-DownloadsED

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 !
 

Dugenou

XLDnaute Barbatruc
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:

CPk

XLDnaute Impliqué
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


 

MACx

XLDnaute Occasionnel
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
 

CISCO

XLDnaute Barbatruc
Re : Extraction d'Initiales Complexe

Bonjour

Deux autres possibilités en pièce jointe, pour mettre en évidence les initiales (ou plus exactement pour effacer les minuscules dans un texte). C'est "lourd", mais ça fonctionne, même pour un texte long.

@ plus
 

Pièces jointes

  • Classeur2.xlsx
    8.9 KB · Affichages: 39
  • Classeur2.xlsx
    8.9 KB · Affichages: 44

CISCO

XLDnaute Barbatruc
Re : Extraction d'Initiales Complexe

Bonjour

Idem en prenant en compte les accents possibles, les cédilles...

@ plus

P.S : On peut imbriquer 64 SUBSTITUE sur Excel 2010.
 

Pièces jointes

  • Initiales.xlsx
    9 KB · Affichages: 36
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…