XL 2013 tri croissant sur données dans une cellule concaténée

blond2comet

XLDnaute Nouveau
Bonjour à tous,

J'ai des cellules avec des données du type :
720 / 440 / 940 / 1200 / 231 / 100 ...
Je souhaiterai trier les données par ordre croissant mais en les gardant dans une seule cellule.
Mon problème réside dans le fait que mon nombre de "chiffres /" est différent à chaque fois et parfois peut monter à une centaine.

Ci-joint un petit fichier excel exemple.

Merci par avance pour votre aide.
 

Pièces jointes

  • Classeur1.xlsx
    11.6 KB · Affichages: 23

job75

XLDnaute Barbatruc
Bonjour blond2comet, mapomme,

Même chose en utilisant la macro bien connue Quick sort :
Code:
Function Classer$(x)
If x = "" Then Exit Function
x = Split(x, "/")
tri x, 0, UBound(x)
Classer = Join(x, "/")
End Function

Sub tri(a, gauc, droi) ' Quick sort
Dim ref, g, d, temp
ref = Val(a((gauc + droi) \ 2))
g = gauc: d = droi
Do
    Do While Val(a(g)) < ref: g = g + 1: Loop
    Do While ref < Val(a(d)): d = d - 1: Loop
    If g <= d Then
      temp = a(g): a(g) = a(d): a(d) = temp
      g = g + 1: d = d - 1
    End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
A+
 

Pièces jointes

  • Classer(1).xlsm
    16.5 KB · Affichages: 27

Discussions similaires

Statistiques des forums

Discussions
312 202
Messages
2 086 180
Membres
103 152
dernier inscrit
Karibu