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 :

tri par entête d'un listbox


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 99
    Par défaut tri par entête d'un listbox
    Bonjour
    Je suis en train de développer une application vb6 qui contient plusieurs listbox
    Je cherche une procédure qui permet de trier les données dans le listbox selon l'entête que l'utilisateur à cliquer sur elle par exemple
    si j'ai un list box qui contient les entête suivante:

    N° | Date |Montant

    S'il clique sur N° les données vont être triée selon les N° dans l'ordre croissant par défaut et s'il répète le clique sur le N° l'ordre devient l'inverse (Décroissant)

    ainsi pour les autres colonnes de l'entête.

    Merci d'avnace

  2. #2
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Heu, tu est sûr qu'il s'agit bien d'un listbox ?
    Le listbox que je connais n'a qu'une colonne et n'a pas de titre.
    maintenant je ne connais pas tout.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 99
    Par défaut
    Citation Envoyé par bargougui86 Voir le message
    Bonjour
    Je suis en train de développer une application vb6 qui contient plusieurs listbox
    Je cherche une procédure qui permet de trier les données dans le listbox selon l'entête que l'utilisateur à cliquer sur elle par exemple
    si j'ai un list box qui contient les entête suivante:

    N° | Date |Montant

    S'il clique sur N° les données vont être triée selon les N° dans l'ordre croissant par défaut et s'il répète le clique sur le N° l'ordre devient l'inverse (Décroissant)

    ainsi pour les autres colonnes de l'entête.

    Merci d'avnace
    Je rectifie , je me suis trompé au nom du composant c'est un listview vb6

  4. #4
    Membre éprouvé
    Inscrit en
    Septembre 2008
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 101
    Par défaut
    Voir propriétés SortOrder et Sorted...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ' Tri lors du clic sur colonne ----------
    Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
        ListView1.Sorted = False
        ListView1.SortKey = ColumnHeader.Index - 1
        'permet de passer de
        'lvwDescending  = 1
        'lvwAscending = 0
        'et vice-versa.
        ListView1.SortOrder = 1 - ListView1.SortOrder
        ListView1.Sorted = True
    End Sub
    Il faut d'abord initialiser la grille en ajoutant des colonnes invisible (largeur=0) dans lesquelles les données sont formatées pour que le tri fonctionne.
    Ensuite, il faut modifier le code ci-dessus pour que par exemple si Colonne1 est ma colonne visible et Colonne2 contient les mêmes données mais formatées pour être "triables", lorsque je clic sur Colonne1, le tri est appliqué sur Colonne2

    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
    ' Tri lors du clic sur colonne ----------
    Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
    Dim lColonne as long
    
        lColonne = ColumnHeader.Index - 1
        Select Case lColonne
            Case 0
                lColonne = lColonne + 1
        End Select
    
        ListView1.Sorted = False
        ListView1.SortKey = lColonne
        'permet de passer de
        'lvwDescending  = 1
        'lvwAscending = 0
        'et vice-versa.
        ListView1.SortOrder = 1 - ListView1.SortOrder
        ListView1.Sorted = True
    End Sub

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 99
    Par défaut
    Citation Envoyé par spdev666 Voir le message
    I dans lesquelles les données sont formatées pour que le tri fonctionne.
    Vous pouvez m'expliquer qu'est ce que cela veut dire formatée?????
    Car j'ai ajouté des colonne invisible et au niveau du remplissage j'ai fait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Set l = List1.ListItems.Add
           l.Text = rs("FT_FAC_NUM")
            I = List1.ListItems.Count + 1
            l.ListSubItems.Add , , CStr(rs("FT_FAC_NUM"))
     
            l.ListSubItems.Add , , rs("FT_DATE")
            l.ListSubItems.Add , , CStr(rs("FT_DATE"))
     
            l.ListSubItems.Add , , rs("FT_AGENCE")
            l.ListSubItems.Add , , rs("FT_TTC")
            l.ListSubItems.Add , , rs("FT_PM")
            l.ListSubItems.Add , , rs("FT_TD")
    J'ai testé le tri pour la colonne du numéro des facture et la colonne des date mais le trie ne fonctionne pas.

  6. #6
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim MeDate As Date
    MeDate = "13/04/1956"
    MsgBox MeDate 'pas de formatage
    MsgBox Format(MeDate, "yyyy/mm/dd") 'formaté
    MsgBox Year(MeDate) & "/" & Month(MeDate) & "/" & Day(MeDate) 'formaté
    Formatage: mise en forme autre que le style par défaut.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 99
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim MeDate As Date
    MeDate = "13/04/1956"
    MsgBox MeDate 'pas de formatage
    MsgBox Format(MeDate, "yyyy/mm/dd") 'formaté
    MsgBox Year(MeDate) & "/" & Month(MeDate) & "/" & Day(MeDate) 'formaté
    Formatage: mise en forme autre que le style par défaut.
    Si j'ai une colonne qui contient des numéro comment la formater????

  8. #8
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    En allant voir dans l'aide de VB peut être ?

Discussions similaires

  1. fonction de tri par introspection
    Par ned-flanders dans le forum C++
    Réponses: 7
    Dernier message: 21/10/2004, 11h49
  2. [ XML ][ XSL ] tri par date
    Par zozolh2 dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/08/2004, 10h19
  3. [LG]Tri par insertion dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2003, 22h34
  4. Tri par ordre alphabétique
    Par orus8 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/04/2003, 19h27
  5. Tri par fusion d'un tableau
    Par Mailgifson dans le forum C
    Réponses: 5
    Dernier message: 12/12/2002, 14h53

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