Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 tri de colonne dans une listview

JM27

XLDnaute Barbatruc
Bonjour
Je n'arrive pas à comprendre pourquoi le tri sur une colonne de la listview ( cout unitaire) se fait mal sur cette colonne alors que sur toutes les autres colonnes c'est ok.
J'ai beau chercher , je ne trouve pas
Merci pour votre aide
 

Pièces jointes

  • Test listview.xlsm
    43.8 KB · Affichages: 10

job75

XLDnaute Barbatruc
Bonjour JM27,

Le tri réalisé sur chaque colonne est un tri alphabétique : les nombres sont considérés comme des textes.

Pour vous en convaincre remplacez la valeur 10 en I3 par 2.

A+
 

job75

XLDnaute Barbatruc
Pour obtenir des tris numériques le plus simple est de trier la base de données :
VB:
Option Explicit
Dim memo 'mémorise la variable

Private Sub UserForm_Activate()
'---
    With Sheets("Données")
        If Not IsArray(memo) Then memo = .[A2].CurrentRegion 'à l'ouvertire de l'UserForm
'---
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Sheets("Données").[A2].CurrentRegion = memo
End Sub

' permet de trier la listview
' un clic sue l'entete trie en croissant
' un deuxième clic sue l'entete en décroissant
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
Dim col%, croissant As Boolean
col = ColumnHeader.Index
With Sheets("Données").[A2].CurrentRegion
    croissant = .Cells(2, col) < .Cells(.Rows.Count, col)
    .Sort .Columns(col), IIf(croissant, xlDescending, xlAscending), Header:=xlYes
End With
UserForm_Activate
End Sub
 

Pièces jointes

  • Test listview(1).xlsm
    30.8 KB · Affichages: 4
Dernière édition:

Discussions similaires

Réponses
19
Affichages
1 K
Réponses
10
Affichages
358
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…