Liste triée sans doublon par macro

Jouxte

XLDnaute Occasionnel
Bonjour à toutes et tous,

J'utilise une macro formulée je crois par J. Boisgontier et qui me sert à créer des listes de validation.
Cette macro est presque parfaite pour mon usage.
Elle trie les valeurs uniques dans l'ordre suivant : Nombres, Textes (dont l'initiale est une majuscule) puis textes (dont l'initiale est une minuscule) par exemple :
125
Paris
Versailles
Versailles RD
paris
versailles
versailles rg

Quelqu'un pourrai-il m'aider à modifier la macro ci-dessous pour remettre en ordre alphabétique les majuscules et minuscules

Par avance merci.



Function SansDoublonsTrié(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = champ
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) And temp(i, 1) <> 0 Then
MonDico.Add temp(i, 1), temp(i, 1)
End If
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTrié = Application.Transpose(a)
End Function

Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < 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
 

Dranreb

XLDnaute Barbatruc
Re : Liste triée sans doublon par macro

Bonjour

Mettez en tête du module Option Compare Text pour ne plus distinguer les minuscules des majuscules.
Moi je préfère carrément créer des dictionnaires classés, et arborescent de préférence. J'ai des modules performants pour ça si ça vous intéresse.
 

Discussions similaires

Réponses
4
Affichages
192
Réponses
5
Affichages
222

Statistiques des forums

Discussions
312 101
Messages
2 085 297
Membres
102 855
dernier inscrit
creed