Tri dans une chaine de caractères.

Fermé
RoshMe
Messages postés
2
Date d'inscription
lundi 22 avril 2013
Statut
Membre
Dernière intervention
22 avril 2013
- Modifié par RoshMe le 22/04/2013 à 20:23
RoshMe
Messages postés
2
Date d'inscription
lundi 22 avril 2013
Statut
Membre
Dernière intervention
22 avril 2013
- 22 avril 2013 à 21:55
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

RoshMe
Messages postés
2
Date d'inscription
lundi 22 avril 2013
Statut
Membre
Dernière intervention
22 avril 2013

22 avril 2013 à 21:55
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