Tri d'une mshflexgrid par click sur l'entête

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 425 fois - Téléchargée 29 fois

Contenu du snippet

Bonjour tout le monde:
J'avais beau cherché un code qui permet de réaliser un tri dans une MSHFlexGrid en cliquant sur l'entête de la table (Style DatagridView de VB2005) sans jamais trouver une réponse.

Voici la solution que j'ai utilisé et qui marche très bien et en plus le code est assez cours! ;-))

Source / Exemple :


Option Explicit
Dim Csst As Boolean                'Variable utilisée dans le code

Private Sub a_Click()              ' a est le nom de la MSHFlexGrid
    If (a.MouseRow = 0) Then       ' Clique sur l'entête de la MSHFlexGrid
        If Csst Then               ' Tri Croissant
            a.Col = a.MouseCol
            a.Sort = 2
            Csst = False
        Else                       'Tri Décroissant
            a.Col = a.MouseCol
            a.Sort = 1
            Csst = True
        End If
    End If
End Sub

Conclusion :


Un premier clique = Tri Croissant
Un deuxième clique = Tri Décroissant
Bonne chance ;-)

A voir également

Ajouter un commentaire

Commentaires

Messages postés
11
Date d'inscription
mercredi 27 janvier 2010
Statut
Membre
Dernière intervention
24 avril 2010

c'est trés gentil de ta part
un excellent code
Messages postés
2
Date d'inscription
mercredi 11 mai 2005
Statut
Membre
Dernière intervention
10 février 2010

Très bien vu ^^ ça va me servir... merci pour ce petit bout de code.
Messages postés
332
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
10 avril 2020
1
10/10 Moi qui aime les codes court !
Messages postés
162
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
21 avril 2015

impecc !
Je l'implante illico dans mon source ym_base.
10/10

cordialement,
ym_trainz

P.S. on peut réduire le code :

If (a.MouseRow = 0) Then ' Clique sur l'entête de la MSHFlexGrid
a.Col = a.MouseCol 'désélectionne la colonne
If Csst Then ' Tri Croissant
a.Sort = 2
Else 'Tri Décroissant
a.Sort = 1
End If
Csst = Not Csst
End If
Messages postés
21
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
18 décembre 2006

Adamo gros merci à toi !
mais tu sais que le tri par date ne fonctionne pas avec cette methode puisque sort trie les jours en premier!
mais tu sais encore c'est mieux que rien ;)
merci gentil!
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.