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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 761 fois - Téléchargée 31 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
adnennahali Messages postés 11 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 24 avril 2010
12 févr. 2010 à 13:32
c'est trés gentil de ta part
un excellent code
cs_snipermaker Messages postés 2 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 10 février 2010
10 févr. 2010 à 16:02
Très bien vu ^^ ça va me servir... merci pour ce petit bout de code.
Galactus13 Messages postés 335 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 16 août 2023 1
3 déc. 2008 à 07:05
10/10 Moi qui aime les codes court !
cs_ym_trainz Messages postés 160 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 21 avril 2015
16 sept. 2007 à 10:10
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
vbnawal Messages postés 21 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 18 décembre 2006
14 nov. 2006 à 12:06
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!

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.