This routine performs the standard column sorting on a ListView control found in many commercial applications, such as Windows Explorer and Outlook. Using this routine, the ListView sorts itself automatically whenever the user clicks on a column. Clicking on the same column toggles the sort order between ascending and descending order. Call this routine from the ListView controls ColumnClick event procedure by passing both a reference to the ListView and the ColumnHeader reference passed to the original event:
Public Sub ListView_ColumnClick(ByRef _MyListView As ListView, ByVal ColumnHeader _As ColumnHeader)With MyListView.Sorted = FalseIf .SortKey <> ColumnHeader.Index - _1 Then.SortKey = ColumnHeader.Index - 1.SortOrder = lvwAscendingElseIf .SortOrder = lvwAscending Then.SortOrder = lvwDescendingElse.SortOrder = lvwAscendingEnd IfEnd If.Sorted = TrueEnd WithEnd Sub