Hola grupo! les hago una consulta, en un listbox tengo los siguientes tems
producto
producto 2
producto 3 sucesivamente hasta producto 20, cuando los ordeno los hace
producto 1
producto 11
producto 12
producto 13
producto 2
producto 20
hay alguna forma de solucionarlo?
Muy buenas noches, para el caso que quieras que trate una parte del texto como numerico:
en el evento CompareRows del listbox agregas esto:
Dim pValor1, pValor2 as double
if column = 0 then 'si seleccionaron para ordenamiento la columna en que esta este dato
'productoxx
//se asume que todas las filas inician con la palabra producto
//entonces tomo los caracteres del digito con posicion 9 en adelante
//y los convierto a double
pValor1 = val(mid(me.cell(row1,column),9))
pValor2 = val(mid(me.cell(row2,column),9))
if pvalor1 < pvalor2 then
result = -1
elseif pvalor1 > pvalor2 then
result = 1
else
result = 0
end if
return true
else
return false
end if
Suerte
quizas otra opcion seria cargar solo los valores numericos en la propiedad rowtag de cada celda y leer desde alli los valores
Gracias Jorge lo probare!