RE:ordenar números separados por guion
Esta macro hace lo que deseas pero deberás hacer los cambios oportunos.
Te describo los pasos que realiza
- Selecciona la columna A que es la que tiene la lista
- Con la opción: "Texto en columnas" de la pestaña "Datos" separo los números en dos columnas con el separador "-" (Resultado en Columna A y B
- Ordena las columnas por B y A
- En la columna C pongo la Formula: "=CONCATENAR(A1;" - ";B1)"
- Copio la formula a toda la columna C (en mi ejemplo de la C1 a la C7)
- Hago un "Copiar Especial" y uso la opción "Pegar Datos" y copio la Columna C sobre la A
- Borro las columnas B y C
- Se coloca en la celda A1
Esta es la macro
-----------------------------------------
Sub Macro1()
'
' Macro1 Macro
'
'
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="-", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
Columns("A:B").Select
ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("B1:B7"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("A1:A7"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Hoja1").Sort
.SetRange Range("A1:B7")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("C1").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-2],"" - "",RC[-1])"
Range("C1").Select
Selection.AutoFill Destination:=Range("C1:C7"), Type:=xlFillDefault
Range("C1:C7").Select
Columns("C:C").Select
Selection.Copy
Columns("A:A").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("B:C").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A1").Select
End Sub