Ordenar tabla de nºs aleatorios en una fila de - a +

Buenas,
Mi problema es que mediante un tratamiento de datos consigo obtener tablas de datos de un range tal que Range("H5:GF185"). Cada celda contiene un número desde 0 hasta 400 más o menos, ordenados aletoriamente. Lo que yo quiero hacer es poder poner todas las filas de la tabla en un única fila y dicha fila ordenarla desde el número más bajo(0) hasta el más alto (400) en orden ascendente. He tratado de hacerlo con autofiltro y no lo consigo. Y ya un macro, muerte y destrucción.
Si me preguntas para que quiero hacer esto, es porque quiero hacer un histograma de que números se repiten más y poder luego calcular la desviación típica y el valor medio de la tabla total.
Soy lo peor en Excel, ahh sniff sniff
Muchas gracias.

1 Respuesta

Respuesta
1
Esta Macro hace lo que necesitas
Copiala y pegala, agregasela a un boton, ejecutalo y listo.
Sub MyMacro()
    Rows("1:4").Select
    Selection.Delete Shift:=xlUp
    Columns("A:G").Select
    Selection.Delete Shift:=xlToLeft
    Range("A1").Select
    For i = 1 To 1
    ActiveCell.Offset(0, 1).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    ActiveCell.End(xlToLeft).Select
    ActiveCell.End(xlDown).Offset(1, 0).Select
    ActiveCell.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    ActiveCell.Offset(-1, 1).Select
    Range(Selection, Selection.End(xlUp)).Select
    Selection.ClearContents
    ActiveCell.End(xlUp).Offset(0, -1).Select
    Next
    Range("a1").Select
    For i = 1 To 3
    ActiveCell.End(xlToRight).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    ActiveCell.End(xlUp).Select
    ActiveCell.End(xlToLeft).Select
    ActiveCell.End(xlDown).Offset(1, 0).Select
    ActiveCell.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    ActiveCell.End(xlUp).Select
    ActiveCell.End(xlToRight).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    ActiveCell.End(xlUp).Select
    ActiveCell.End(xlToLeft).Select
    Next
End Sub
Saludos
Visita misito donde encontraras un archivo de ejemplo..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas