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

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

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