Tri alpabetique combobox

bonjour à tous,

voilà quelques mois, j'avais trouvé une facon de trier alphabetiquement mes combobox et aujourd'hui je n'arrive plus à retrouver la facon d'effectuer celà.

je me souviens seulement que j'utilisais "Référence Microsoft Scripting Runtime." et qu'en suite quelques lignes de code me permettait d'effectuer ce tri...

malheureusement, j'ai perdu les fichiers et aujourd'hui je cherche en vain la solution.

si vous avez une idée, je suis preneur!!! merci d'avance, bonne journée

Bonjour

Votre combobox est dans une userform ?

Avez-vous pensé que vous pouvez aussi trier dans la feuille avant de charger la combo

Crdlt

oui, mais je pense avoir retrouver ma facon de faire, voilà ce que j'ai trouvé, merci pour tout!

'
Public Function sorted_array(ByRef InputArray As Variant) As Variant

Dim arr As Object
Dim element As Variant

'Creating a array list
Set arr = CreateObject("System.Collections.ArrayList")

'number
'InputArray = Array(6, 5, 3, 4, 2, 1)

' adding the elements in the array to array_list
For Each element In InputArray
arr.Add element
Next

'sorting happens ) VOILA CE QUE JE CHERCHAIS!!!
arr.Sort

'Converting ArrayList to an array
'so now a sorted array of elements is stored in the array sorted_array.

sorted_array = arr.toarray
End Function

en fait, je recherchais "system.collections.arraylist"... pour l'adapter ensuite à mes comboboxes en passant aussi par un dictionnaire qui me permettait d'avoir des valeurs uniques.

bonne soirée, et merci de votre aide.

Jean-Noel

bonjour jeannoel05,

sans doublons et sans dictionaire ....

  For Each element In InputArray
          If Not arr.contains(element) Then arr.Add element
     Next

mais ce qui me surprends souvent, c'est la proposition de "Dan", juste copier vos données quelque part dans un coin perdu de votre fichier, le trier et supprimer les doublons et voila,

re

@BsAlv,

mais ce qui me surprends souvent, c'est la proposition de "Dan", juste copier vos données quelque part dans un coin perdu

Il ne s'agit pas d'un coin perdu.

Exemple : Mettons que l'on a les données dans une feuille en colonne A qui servent à la combo
Lorsque du chargement de la combo, on peut très trier les données avant de les charger. C'est à cela que je faisais référence.
Maintenant cette manière de faire n'était valable que si on n'a pas de doublons bien entendu.
Le demandeur n'a rien précisé à ce sujet dans sa demande donc mon post était d'aller au plus simple et au plus direct.

Crdlt

@Dan, d'accord, mais de temps en temps,le tableau est déjà trié d'une manière et on ne peut plus le toucher, alors je prends ce "coin perdu".

Mais je vois qu'on a excel2019 et je crois qu'on peut déjà trier des matrices dans cette version, donc un essai avec la macro "essai" et espèrons que cela ne bug pas sur ce "application.sort". Si cela fonctionne, on peut le faire en une fois ...

2jeannoel05.xlsm (22.71 Ko)

@BsAlv,

donc un essai avec la macro "essai" et espèrons que cela ne bug pas sur ce "application.sort".

Oui avec la fonction Unique mais je ne l'ai pas sur ma version. Donc cela bugue sur cette ligne mais je comprends l'idée.proposée.
Dans mon cas on pourrait procéder autrement et moins simple et plus long en ligne de code. Exemple : Trier sur la colonne B, puis supprimer les doublons puis copier en colonne A.

Cordialement

bonjour Dan,

j'ai appliqué 4 méthodes et 10 fois consécutif dans la PJ et sur .

  • macro "M-En_Une_Fois", (cela ne fonctionne pas chez vous) avec unique et sort = 3 ms/fois
  • macro "M_OldSchool1_CoinPerdu", comme vous le décrivez ici dessus = 12 ms/fois
  • macro "M_Matrice", avec l'ancien BubbleUp = 23 ms
  • macro "M_SCA", avec system.Collections.Arraylist = 9 ms

Bon, tout dépend des conditions (Nombre d'éléments et doublons), mais la dernière version qui est instantanée.

Sinon, ma réaction de dimanche, la méthode avec SCA et OldSchool (dans un coin perdu) sont comparable en lignes de code et en temps d'exécution.

Si (voir feuille "Blad2") on n'a qu'une dizaine de lignes, les temps sont presque les mêmes (2-5 ms)

Donc, ces outils plus sophistiques ne sont pas toujours plus performants, c'est ce que je voulais dire ...

2jeannoel05.xlsm (32.35 Ko)
Rechercher des sujets similaires à "tri alpabetique combobox"