Ordre alphabétique dans 1 cellule de plusieurs mots séparés par une virgule

Bonjour,

J'ai une colonne "Catégorie" dans laquelle j'ai des valeurs comme suit dans 1 cellule:

"Ouvrier, Juriste, Maçon, Artiste"

"Maçon, Boulanger, Ouvrier"

"Mécanicien, Musicien, Boulanger"

Je voudrais pouvoir avoir dans ces cellules les libellés des Catégorie par ordre alphabétique comme suit:

"Artiste, Juriste, Maçon, Ouvrier"

"Boulanger, Maçon, Ouvrier"

"Boulanger, Mécanicien, Musicien"

Quelqu'un a t'il une solution par une formule, pas de VBA (que je ne connais pas)

Merci d'avance et belle journée

Bonjour,

Sans VBA, je pense que ce ne sera pas possible. Un expert PowerQuery viendra peut-être me contredire, mais si c'est la maitrise de la solution qui vous rebute, vous ne serez probablement pas plus avancé !

Bonjour Pedro22, merci, je vais attendre alors Je souhaite juste voir si une solution "formule" est possible. Sinon, c'est OK...

Une solution VBA, qui s'utilise comme une fonction classique. Le code est à placer dans un module standard de l'éditeur VBA, et le fichier à enregistrer au format .xlsm :

Public Function ArrangerTxt(ByVal Txt As String, Optional ByVal Sep As String = ",") As String

Dim i As Integer, Texte() As String, Temp As String, TriOK As Boolean 'Déclaration des variables

Texte = Split(Replace(Txt, " ", ""), Sep) 'Extraction des différents textes selon séparateur indiqué
'Boucle de tri alphabétique
i = LBound(Texte)
Do
    TriOK = CBool(i = UBound(Texte)): i = i + 1
    If Asc(UCase(Left(Texte(i), 1))) < Asc(UCase(Left(Texte(i - 1), 1))) Then
        Temp = Texte(i - 1): Texte(i - 1) = Texte(i)
        Texte(i) = Temp: i = LBound(Texte): TriOK = False
    End If
Loop While (Not TriOK And i < UBound(Texte))
ArrangerTxt = Join(Texte,", ") 'Renvoi du résultat

End Function

Dans la feuille Excel :

=ArrangerTxt(A1)
Rechercher des sujets similaires à "ordre alphabetique mots separes virgule"