Tri combobox

Bonjour le forum

j'ai un userform dans lequel je remplis 5 combobox à partie d'un grand tableau.

Je souhaite présenter ces combo triées et que mes textbox se remplissent correctement

J'ai trouvé sur le net et ca semble me convenir:

Par contre je souhaite pouvoir trier des dates ou des nombres ou des mots

et savoir s'il y a un code plus performant en terme de rapidité car mon tableau fait plus de 1000 lignes

Merci pour votre aide

Séb

Salut Séb,

Sarl54 a écrit :

j'ai un userform dans lequel je remplis 5 combobox à partie d'un grand tableau.

Ce que tu dis là est incorrect, tu as seulement 4 ComboBox.
Sarl54 a écrit :

Je souhaite présenter ces combo triées

Pas de problème, triés par rapport à quoi ?
Sarl54 a écrit :

et que mes textbox se remplissent correctement

Que veux-tu dire exactement par cela ?
Sarl54 a écrit :

Par contre je souhaite pouvoir trier des dates ou des nombres ou des mots

Il me semble que n’importe quelle donnée peut être triée.
Sarl54 a écrit :

et savoir s'il y a un code plus performant en terme de rapidité car mon tableau fait plus de 1000 lignes

1000 lignes semblent peu de chose pour Excel.

Peut-on voir – en plus de tes explications complémentaires – ton fichier à toi ?

Cordialement.

Salut Yvouille

en fait ce code même s'il faut que je me plonge dedans pour le comprendre (car je préfère toujours comprendre ce que j'écris)

semble bien fonctionner ( je n'ai pas encore testé les dates)

donc apriori il me convient

et je saurai l'adapter pour mon fichier

toutefois je demandais si c'est le triage le plus rapide (car mon tableau fait plus de 1000 lignes même si je sais que c'est pas beaucoup pour excel et il y aura 5 combobox à trier).

j'aurai trois tris par ordre alphabétique, un par ordre croissant et un par date.

Le tout est de trouver le code le plus performant , je demande donc aux spécialistes du forum

Voili Voilou

Re-bonsoir,

Ton fichier n'est pas passé, je ne peux donc pas en prendre connaissance

joindre un fichier forum

je n'en ai pas envoyé celui que j'ai mis dans le premier message convient

Re

De plus ca ne trie pas par dates, ce qui m'aurait été vu le code

Bonjour,

Option Compare Text
Private Sub UserForm_Initialize()
  Dim temp()
  Set f = Sheets("BD")
  temp = Application.Transpose(f.Range("A2:A" & f.[A65000].End(xlUp).Row))
  Call tri(temp, LBound(temp), UBound(temp))
  Me.ComboBox1.List = temp
End Sub

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

http://boisgontierjacques.free.fr/fichiers/Formulaire/FormTriTableurTrie.xls

http://boisgontierjacques.free.fr/fichiers/Formulaire/F_liste_triee_Croissant_Decroissant.xls

http://boisgontierjacques.free.fr/fichiers/Formulaire/TriListBoxCroissantDecroissant.xls

Ceuzin

Bonjour

Merci pour ton aide

Je suppose que temp() est un tableau à une colonne

Le code ci dessus m'intéresse mais il faudrait que je l'adapte car

c'est dans des combobox que je vais mettre les renseignements (5 combobox qui peuvent être triées)

Ainsi, j'aurai sélectionné une valeur d'une des combo triée, je récupère la ligne d'origine du tableau.

Re

Je récapitule ma problématique:

J'ai 5 Listes remplies à partir de 5 colonnes d'un tableau

Je veux pouvoir choisir une liste, qu'elle soit triée par ordre alphabétique et une fois la valeur sectionnée, je veux récupérer

les valeurs de la ligne correspondante du tableau

Ca je sais faire

Mais quel est le plus rapide pour le tri:

1) une liste multiciolonne ( 5 colonnes )

2) 5 listes

3) un tableau trié suivant la colonne choisie et la liste affiche la colonne

Merci pour vos avis

Séb

Yvouille a écrit :

Ton fichier n'est pas passé, je ne peux donc pas en prendre connaissance

Amicalement.

Rechercher des sujets similaires à "tri combobox"