Tri par event

Bonjour

J'ai un petit probleme de tri : je souhaite qu'un utilisateur lambda de mon fichier excel puisse trier les donnees du tableau en ordre decroissant mais selon les donnees d'une colonne voulue par un simple double clic dans la colonne concernee. Cela marche avec un fichier simple mais des que je le met dans un fichier avec des lignes figees et des cellules fusionnees, cela bloque. Je pense que cela vient du fait que le tri s'applique a toute la colonne et veut prendre en compte les cellules fusionnes, ce qu'il ne peut pas.

Mais comnment faire pour ne le restreindre qu'a partir d'une certaine ligne ?

Je joint un fichier exemple (dans ce cas, je veux trier a partir de la ligne 8.

9book1.xlsm (26.92 Ko)

Bonjour,

il faut éviter les fusions de cellules déjà ...

et pourquoi ne pas utiliser le tri qui est dans le menu ???

j'ai peut être loupé qq chose

P.

Bonjour à tous

patrick1957 a raison.

Mais si tu tiens vraiment à ton double-clic, voici un essai.

Bye !

3book1-v1.xlsm (32.43 Ko)

Bonjour,

une idée, sortir de l'évènement si double-clic au dessus du tableau..

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim myRange As Range
    If Target.Row < 7 Then Exit Sub   ' sortir si double-clic sur ligne au dessus du tableau
    Cancel = True
    Set myRange = Range("D10").CurrentRegion
    If Not Intersect(myRange, Target) Is Nothing Then
                    myRange.Sort key1:=Cells(myRange.Cells(1).Row, Target.Column), Header:=xlYes
        End If
    Target.Select
End Sub

Il est possible de faire de même pour la colonne...

Cordialement,

Bonjour,

Une autre proposition avec les données mises sous forme de tableau.

Cdlt.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.ListObject Is Nothing Then Exit Sub
    Cancel = True
    With Me.ListObjects(1)
        .Sort.SortFields.Add _
                Key:=.ListColumns(Target.Column).DataBodyRange, _
                SortOn:=xlSortOnValues, _
                Order:=xlDescending
        .Sort.Apply
        .Sort.SortFields.Clear
    End With
End Sub

Une autre proposition avec les données mises sous forme de tableau.

C'est vrai que passer les donnees sous forme de tableau est une idee a laquelle je n'avais pas pensee. En tout cas ca marche, merci bien

Rechercher des sujets similaires à "tri event"