Ordenar automáticamente tabla excel

He estado mirando en el foro (muy interesante, por cierto) como ordenar automáticamente una tabla de excel, pero no termino de encontrar una respuesta que se ajuste a lo que estoy buscando, os explico.
Tengo una tabla para un torneo con las siguientes columnas,
Equipos-Partidas-Victorias-Derrotas-Puntos-Diferencia resultados
Debajo vienen 8 equipos, quiero que la tabla se reordene automáticamente para no tener que estar modificando el orden cada semana.
La nueva tabla (la reordenada) debería aparecer en orden descendente por puntos y en caso de empate a puntos, por diferencia de resultados, me explico. Si dos equipos tienen los mismos puntos, debería aparecer primero el que tenga una mayor diferencia de resultados.
A ver si me podéis echar un cable.
Muchas gracias

1 respuesta

Respuesta
1
Es posible que te sirva esta macro:
Sub Ordenar()
    Range("A2:F2").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("E2:E8"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("F2:F8"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Hoja1").Sort
        .SetRange Range("A1:F8")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A1").Select
End Sub
Cópiala y entras en Visual Basic, (Alt + F11) y vas al menú Insertar e insertas un módulo. Te aparecerá el módulo en blanco y pegas allí la macro.
Para activar la macro, hay varios métodos, por ejemplo puedes ponerle una letra de método abreviado, para lo cual desde excel te vas al menú macros y seleccionas la macro Ordenar y le das al botón Opciones y podrás poner por ejemplo la "x" como letra de método abreviado. También se le pude poner un botón pero eso te lo explicaría si te interesa para no perder mucho tiempo.
Otra forma muy cómoda sería nombrar la macro como Sub Auto_Open() en lugar de Sub Ordenar() y en este caso, la macro se activa automáticamente al abrir el libro, con lo que cada vez que lo abras, se abrirá ordenado.
Perdona mi ignorancia, uso normalmente excel pero no he trabajado prácticamente nada con macros (nada, de hecho). Ahora mismo estoy con un ordenador en el que en vez de excel trabajo con open office, pero me imagino que será lo mismo.
En cualquier caso, como te digo, no se ni como insertar la macro... podrías explicármelo paso a paso!?
Muchísimas gracias por tu tiempo, un saludo
Este código es para Excel. Creo que si tienes una hoja de cálculo Excel con una macro con este código, puedes abrirla en Calc y ejecutar la macro. No he hecho la prueba pero en Calc tienes un cuadro de dialogo en Herramientas/Opciones/Cargar.Guardar/Propiedades de VBA con una casilla de verificación con la etiqueta Código ejecutable que tendrías que habilitar para que Calc te ejecute el código de Excel. En Open Office no se si se puede entrar a la ventana de diseño de código, creo que en eso están verdes.
Si puedes abrir el documento en Excel, las instrucciones las tienes en la respuesta anterior. Pulsar Alt + F11, menú insertar etc, etc.
Siento mi ignorancia, en serio, pero me estoy volviendo loco con el tema :S :S :S :S
Cuando sigo los pasos que me comentas, lo que me ocurre es que me dice que hay un error, que tengo que regular el nivel de seguridad de las macros y demás, la verdad es que con todo esto me pierdo muchísimo.
Dejo aquí un link para descargar la tabla de excel que comento, a ver si así es un poco más claro. He probado en excel y lo que querría es que se ordenase en donde pone clasificación, pero no se como hacerlo.
He seguido los pasos que me comentas y aun así no lo consigo, siento mi ineptitud :S pero a ver si me podéis echar un cable.
Gracias y un saludo! :)
El link en cuestion, si no se puede dejar aqui me comentais o borrais el post, gracias
http://www.megaupload.com/?d=ZNZ8VK29
Tienes el archivo en http://www.megaupload.com/?d=K40C8MGV
El código es distinto al que te di en principio aunque funciona igual. Si quieres ver el código, pulsa Alt+F11 y te aparecerá.
Te he grabado la macro para que se active con una tecla de método abreviado, (Ctrl + x), o si lo prefieres pulsando un botón en la hoja, lo puedes hacer de las dos formas. Si prefieres hacerlo siempre con Ctrl x y quieres borrar el botón, me lo dices y ya te diré como hacer para borrarlo.
El problema que tienes para entrar al archivo es porque no tienes deshabilitada la seguridad para macros. Si tienes Excel 2003, tienes que ir a Herramientas/Macro/Seguridad... y te saldrá un cuadro de dialogo con las opciones de seguridad. Tienes que ponerla en Medio o Bajo, pero no en Alto o Muy Alto. Si tienes Excel 2007 es algo más complicado, tendrías que ir al botón de Office, (arriba a la izquierda), Opciones de Excel/Centro de confianza/Configuración del centro de confianza/Configuración de macros y allí escoges la opción Habilitar todas las macros.
Si tienes algún problema, me lo comentas.
El problema que tengo es que se me van a saltar las lagrimas!
Mil gracias por la ayuda, en serio, es increíble! Muchísimas gracias!
Me arreglo bastante con el excel, pero a nivel de macros soy un completo ignorante, así que estaba perdidísimo con este tema, no te imaginas hasta que punto me has ayudado.
Voy a mirar lo de la seguridad, intento resolverlo y si sigo teniendo problemas, pondré otro thread, porque creo que puede ser de utilidad para más gente.
Un saludo y lo dicho, mil gracias!
En fin, creo que lo que os comentaba en el post anterior se queda corto. Muchísimas gracias por la ayuda que me habéis prestado, un 10 en todos los sentidos, atención, rapidez, resolución, etc, etc... todo, muchísimas gracias por todo.
Un saludo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas