Bonjour à tous,
Je voudrais réaliser un tri sur une collection.
Est ce possible ?
Je n'ai rien trouvé à ce propos.
Merci de votre aide.
Bonjour à tous,
Je voudrais réaliser un tri sur une collection.
Est ce possible ?
Je n'ai rien trouvé à ce propos.
Merci de votre aide.
Personne n'a une idée ?
Je peux réaliser quelque chose comme ca :
Mais la condition ne fonctionne pas sur les caracteres, comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 For i = 1 To liste.Count For j = 1 To liste.Count - i If liste.Item(j) > liste.Item(j + 1) Then Temp = liste.Item(j): liste.Item(j) = liste.Item(j + 1): liste.Item(j + 1) = Temp End If Next j Next i
sous toutes réserves
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Function tricoll(macoll As Variant) As Variant Dim boucle As Integer Dim boucle2 As Integer 'demo de tri de la collection For boucle = 1 To macoll.Count For boucle2 = boucle + 1 To macoll.Count If macoll(boucle2) < macoll(boucle) Then macoll.Add Item:=macoll(boucle2), before:=boucle macoll.Remove (boucle2) + 1 End If Next boucle2 Next boucle Set tricoll = macoll End Function Function ttricoll() Dim boucle As Integer Randomize Dim macoll As New Collection 'on crée la collection For boucle = 1 To 10 macoll.Add Item:=Int(Rnd() * 100) Next boucle Set macoll = tricoll(macoll) 'vérif For boucle = 1 To 10 Debug.Print macoll(boucle) Next boucle
Elle est pas belle la vie ?
Je ne fais pas un tri sur les entier, mais sur les String.....
Le code proposé sur les entier marche tres bien. Tri a bulles 'basique'.
je vais peut etre dire une grosse bétise mais on m'a conseillé pour un problème complétement différent d'utiliser une table temporaire donc j'ai ça à l'esprit en ce moment. Et donc pourquoi pas ne pas créer une table temporaire, la remplire avec vos données de la liste puis les récupérer par une requêtes possédant un order by, le tri sur les caractères se fera sans problèmes, nan?
Oui c'est tout a fait possible, sans meme passer par de table temporaire (??).
En faisant un ORDER BY mais c'etait pour eviter une requete sur la base. Mais si il n'y a que cette solution.....
utilisez un recordset plutot qu'une requete c'est plus rapide il me semble.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager