Tri dans une chaine de caractères.

RoshMe Messages postés 4 Statut Membre -  
RoshMe Messages postés 4 Statut Membre -
Bonjour,
Je dispose de 7000 chaines de 5 caractères (Colonne G, une chaine de caractères par ligne) que je veux répéter dans une colonne I à l'identique, mais chaque chaine doit être triée par ordre décroissant (ou croissant, je cherche juste à les trier, peu importe du moment que l'ordre soit le même partout).
Exemple : ligne 1 : colonne G : "58729" -> Colonne I : "98752"
ligne 2 : colonne G : "52224" -> colonne I : "54222"
......
.....

J'essaye de faire quelque chose avec Mid, mais je me perds dans mes boucles...

Si quelqu'un a une idée, cela m'aiderait énormément...
Merci beaucoup.

1 réponse

  1. RoshMe Messages postés 4 Statut Membre
     
    Après avoir bien bien galéré, je m'en sors avec une fonction qui fait ce que je voulais, je vous la colle ici :

    Option Compare Text
    Function SortString(ByVal iRange, Optional Croissant As Boolean = True)
    Dim i%, j%, sTemp$

    For j = 1 To Len(iRange) - 1
    For i = 1 To Len(iRange) - 1
    If Mid(iRange, i, 1) > Mid(iRange, i + 1, 1) Then
    sTemp = Mid(iRange, i, 1)
    Mid(iRange, i, 1) = Mid(iRange, i + 1, 1)
    Mid(iRange, i + 1, 1) = sTemp
    End If
    Next
    Next

    If Croissant = False Then
    For i = Len(iRange) To 1 Step -1
    SortString = SortString & Mid(iRange, i, 1)
    Next
    Exit Function
    End If

    SortString = iRange

    End Function

    Je me suis bien inspiré de ce que j'ai trouvé sur un forum.
    0