I had also troubles, when I tried to sort a column, where there were numbers of different length in it. (Because the sort ist 1.11 then 111.2 and then again 1.13)
So if you got this also, here my simple solution.
For each column with any amounts (money or other things) you create a column at the end, which is to narrow to be seen.
In this column you write a number wich is (10000000000 - amount)
Afterwards you sort this column and the numbers are sorted in the amountcolumn.
Eli Ott:
The Scrollposition is also somehow a little bit difficult, because if you alter the amounts of rows after the selection with cellclick, it is very difficult, to come to the right position.
Or you could just use ListBox.CompareRows which is the generally accepted practice.
// Example for forum
Function CompareRows(row1 as Integer, row2 as Integer, column as Integer, ByRef result as Integer) As Boolean
// we want a numeric sort for for column 0 -and column 8
select case column
case 0, 8
result = (val(me.Cell(row1, column)) - Val(me.Cell(row2, column)))
Return True
Else
Return False
end Select
End Function