Ordenar una columna numerica de un listview

Max
14 de Julio del 2004
Pues eso que tengo un listview y tengo una columna en la que tengo solo datos numericos que me gustaria ordenar numericamente y no como un string.
¿Alguien sabe como?

sdemingo
14 de Julio del 2004
Hola,

utiliza CInt para convertir el tipo string a integer y poder ordenarlo como números

Dim numero As String
numero = "0001"
MsgBox CInt(numero) --> 1

Para ordenar puedes utilizar varios métodos... si no van a ser muchos, muchos números puedes utilizar el método de la burbuja.

salu2
sdemingo

Max
14 de Julio del 2004
Este es el codigo que huso en el evento click del ColumnHeader para ordenar el listview, pero hace una ordenacion tratando los datos como string. Al rellenar el listview he provado a forzar a convertir el dato, pero no consigo nada. ¿Tengo que currarme la funcion completa de ordenacion?¿No hay ningun otro metodo?



With listview
If .SortOrder = lvwAscending Then
.SortOrder = lvwDescending
Else
.SortOrder = lvwAscending
End If
.SortKey = ColumnHeader.Index - 1
.Sorted = True
End With

sdemingo
14 de Julio del 2004
El método de la burbuja no es más que esto...

For a = 0 To UBound(numeros)
For b = 0 To UBound(numeros)
If numeros(a) < numeros(b) Then
Copia = numeros(a)
numeros(a) = numeros(b)
numeros(b) = Copia
End If
Next b
Next a

salu2
sdemingo

Max
14 de Julio del 2004
Gracias, espero que esto no se quede mu pillado y vaya rapido.

Como siempre, el mejor y el que contesta "sdemingo"

Gracias tio.
salu2