Formato de números

¡Hola!
Últimamente tengo que ordenar unos códigos, que son siempre así: 124.00.51, 1575.11.23,
0245.00.66, etc. Para poder ordenarlos como números (porque si no, ordena antes el 0245.00.66 que el 124.00.51 y no es así), lo que hago es quitarles los puntos, con buscar y reemplazar, y darle a ordenar. Pero claro, luego tengo que ir poniendo los puntos a mano y hay veces que se tarda mucho.
Los códigos llevan siempre los puntos en la misma posición: antes de la cuarta ultima posición y antes de la penúltima.
A ver si me puedes decir alguna forma de formato de celda, o con alguna función, para poner esos puntos automáticamente.
Gracias anticipadas

1 Respuesta

Respuesta
1
Prueba este código, primero convierte en números la selección, los ordenas ascendente y vuelve a convertir la selección en cadena de texto con un formato, que creo que puede ser el que necesitas.
Sub ordena()
For Each midato In Selection
Range(midato.Address) = Val(midato)
Next ' each
fila = Selection.Row
columna = Selection.Column
Selection.Sort Key1:=Cells(fila, columna), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
For Each midato In Selection
Range(midato.Address) = Format(Str(midato), "&&&&&.&&.&&")
Next ' each
End Sub
Suerte
Perdón parece que solo me ha funcionado una vez, no lo pruebes. Ya te lo reviso de nuevo...
Ten en cuenta que hay códigos de 5 cifras, otros de 7, etc.
Lo que más me interesa es poder volver los códigos con sus puntos.
Gracias y hasta pronto.
Hola de nuevo.
Ya he resuelto el problema. He usado las funciones DERECHA, LARGO, IZQUIERDA Y CONCATENAR. No sabia de la existencia de la función LARGO.
Luego me he dado cuenta de que era mucho más fácil que todo eso: con copiar los códigos en la columna de al lado, quitarles los puntos y ordenar todo a l vez, ya está.
De todas formas, muchísimas gracias por el interés y la rapidez en contestar.
Hasta otra.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas