IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

tri alphabétique sur une collection


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut tri alphabétique sur une collection
    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.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    Personne n'a une idée ?

    Je peux réaliser quelque chose comme ca :
    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
    Mais la condition ne fonctionne pas sur les caracteres, comment faire ?

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    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
    sous toutes réserves
    Elle est pas belle la vie ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    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'.

  5. #5
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut
    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?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    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.....

  7. #7
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut
    utilisez un recordset plutot qu'une requete c'est plus rapide il me semble.

Discussions similaires

  1. tri alphabétique sur JComboBox super lent, une meilleure solution ?
    Par _LittleFlea_ dans le forum Général Java
    Réponses: 10
    Dernier message: 07/06/2010, 17h44
  2. Réponses: 3
    Dernier message: 21/04/2009, 08h55
  3. tri alphabétique d'une liste déroulante
    Par imeys dans le forum Access
    Réponses: 4
    Dernier message: 17/05/2006, 22h28
  4. Tri alphabétique sur plusieurs champs
    Par lamoufle dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/12/2005, 04h26
  5. [Struts] <logic:iterate> sur une collection d objets c
    Par trax020 dans le forum Struts 1
    Réponses: 2
    Dernier message: 12/05/2005, 00h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo