Insertar macro en excel 2013

Quiero ordenar una tabla en excel que va desde D8 hasta U57 y quiero ordenarla primeramente por D y luego por F, para hacer eso quería insertar un botón que me realizara esa opción, alguien que me pueda ayudar.

1 Respuesta

Respuesta
1

Esta sería la macro

Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: ordenar
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Sub ordenar()
'Por.DAM
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("D9:D57"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("F9:F57"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Hoja1").Sort
        .SetRange Range("D8:U57")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

mira modifique un poco el archivo, solamente que agregue unas filas, copie el código que me distes y lo modifique a que se me acoplara al libro con el que trabajo.

la hoja que tengo en uso se llama completo, y remplace donde decía hoja1

modifique los valores por los que actualmente tengo quedando de esta manera

Sub ordenar()
'Por.DAM
 Range(Selection, Selection.End(xlUp)).Select
 ActiveWorkbook.Worksheets("Completo").Sort.SortFields.Clear
 ActiveWorkbook.Worksheets("Completo").Sort.SortFields.Add Key:=Range("D11:D60"), _
 SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
 ActiveWorkbook.Worksheets("Completo").Sort.SortFields.Add Key:=Range("F11:F60"), _
 SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
 With ActiveWorkbook.Worksheets("Completo").Sort
 .SetRange Range("D11:U60")
 .Header = xlYes
 .MatchCase = False
 .Orientation = xlTopToBottom
 .SortMethod = xlPinYin
 .Apply
 End With
End Sub

pero tengo un problema cuando lo quiero poner en marcha, los valores que están en la fila D11 no son tomados en cuenta, no se porque

agradecería que me explicaras un poco mas.

¿Los datos de D11 son títulos o también son datos?

Si son datos cambia esta línea en la macro

.Header = xlYes

Por esta

.Header = xlGuess

Saludos. Dante Amor
No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas