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

VB 6 et antérieur Discussion :

[VB6]Tri multi-colonnes sur tableau de structure


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [VB6]Tri multi-colonnes sur tableau de structure
    Alors là moi j'vous dit ... truc de fou !

    En faite voila mon problème, j'ai crée une class en VB6 (avec un module de class) qui gère une liste structuré (ajout, suppression, insertion) et aussi qui gère les tries !!!

    J'ai une structure du genre :

    Private Type FileStructure
    A as String
    B as String
    C as String
    D as String
    E as String
    F as String
    End Type

    J'ai crée un tableau de cette structure, qui devient la liste de ma classe auquel j'ai rajouter ensuite des methodes pour la gérer !

    Par contre la seule methode que je n'arrive pas a faire c'est du tri sur plusieurs colonne simultanement : c'est a dire que par exemple je veux trié B dans l'ordre alphabetique puis D dans un ordre proprietaire (des mots passent avant d'autres) sans touché a lordre de B etc...

    Enfin je sais pas si je me suis fait comprendre mais voila c'est super chaud, j'ai bien avancer, j'arrive a faire des tries mais j'arrive pas a faire un systeme qui me permette en dehors de ma class de dire je veux que tu tri ma liste sur tel et tel colonne, avec tel type de tri, et dans tel ordre !

    Sinon voila ma fonction de tri :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Public Sub TriShellTableau()
     
    Dim Ecart    As Long           ' Ecart calculé
    Dim I        As Long           ' Compteur de boucle
    Dim J        As Long           ' Variable (temporaire) de travail du compteur
    Dim Taille   As Long           ' Taille du tableau
    Dim Permut   As Boolean        ' Flag de permutation
    Dim Iter     As Integer        ' Nombre de passage en fonction du nombre de colonnes
    Dim Tampon   As FileStructure     ' Tampon pour la permutation d'éléments
     
        For Iter = 1 To 5  ' = nombre de colonne a trier
     
                    Taille = UBound(TABLOEXCEL)
                Ecart = Taille \ 2
     
                Do While Ecart <> 0
     
                    For I = 1 To (Taille - Ecart)
                        J = I
                        Permut = True
     
                        Do While ((J > 0) And (Permut = True))
                            Permut = False
     
                            If Sort(J, (J + Ecart)) Then
     
                                Tampon = TABLOEXCEL(J)
                                TABLOEXCEL(J) = TABLOEXCEL(J + Ecart)     ' interverti les lignes
                                TABLOEXCEL(J + Ecart) = Tampon
                                J = J - Ecart
     
                                Permut = True
                            End If
     
                        Loop
     
                    Next I
     
                    Ecart = Ecart \ 2
     
                Loop
     
        Next
     
    End Sub
    TABLOEXCEL représente mon talbeau de structure, et Sort() est une fonction exterieure qui prendra le relai pour les comparaison (c'est elle que je n'arrive pas a faire !)

    Balises Code et /Code ajoutées par ouskel'n'or
    Damien

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hé oui, un de plus qui n'a pas lu les règles du forum : Pas de sujet en majuscules , balises Code /Code absentes (le bouton en haut de la feuille d'édition de ton message) Tu devrais les lire, elles t'apportent plein de renseignements utiles.
    Ceci dit, bienvenue sur le forum !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Méa culpa, je ne post pas beaucoup ici, et sur d'autre forum les sujets passent automatiquement en majuscule... donc désolé, oui j'ai pas lu les règles

    Heuu sinon rien pour mon problème ?

    Merci, et encore désolé pour mon post "sale"
    Damien

Discussions similaires

  1. Tri multi-niveau sur 2 colonnes
    Par pwetzou dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 17/02/2015, 17h29
  2. [XL-2010] [VBA] Tri multi critère sur tableau
    Par Carlito01 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/05/2014, 15h01
  3. memcpy sur tableau de structure
    Par htristra dans le forum C
    Réponses: 8
    Dernier message: 05/08/2006, 01h22
  4. [VB6] Création de colonnes sur ListView
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 28/05/2006, 16h20
  5. [VB6] Titre de colonne sur 2 lignes
    Par falbalaa dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/02/2004, 20h46

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