Quiero ordenar con una macro una tabla excel por varias columnas
Tengo una tabla excel que quiero ordenar con una macro por tres criterios y luego filtrar y el resultado de los filtros copiarlos a diferentes hojas. El filtrado me funciona bien. Pero la ordenación no me esta funcionando, ni siquiera para una sola columna, pero no me da error.
El código que estoy utilizando es una modificación del que hice con la grabadora de macros. Son X columnas: Empresa, chapa, combustible, servicentro y provincia. El orden de ordenacion es: provincia, empresa, servicentro
Sub Macro1()
' Macro1 Macro
' ORDENAR Y FILTRAR
' Acceso directo: Ctrl+Mayús+W
'*************************** MACRO HECHA CON LA GRABADORA ***************************
'Range("A2:D1579").Select
' PREPARANDO ORDEN x PROVINCIA
' desde D2 hasta ultima fila (por definir)
' ActiveWorkbook.Worksheets("LISTADO COMPLETO").Sort.SortFields.Add Key:=Range( _
' "D2:D1579"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
' xlSortNormal
' ************************************* moodificacion de la macro de la grabadora
Dim MiRango As Range ' variable para el rango de toda la tabla que varia de una semana a otra
Dim rng_var As Range ' variable para el rango resultante de aplicarle un filtro a MiRango
Set MiRango = ActiveSheet.Range("LISTADO_COMPLETO")
MiRango.Select
ActiveWorkbook.Worksheets("LISTADO COMPLETO").Sort.SortFields.Clear
' PREPARANDO ORDEN x PROVINCIA
ActiveWorkbook.Worksheets("LISTADO COMPLETO").Sort.SortFields.Add Key:=Range( _
"E2", Range("E2").End(xlDown)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
' APLICANDO LA ORDENACION
With ActiveWorkbook.Worksheets("LISTADO COMPLETO").Sort
.SetRange MiRango
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
' se aplica el filtro pero incorrectamente para la primera fila ¿por qué?
este es el orden inicial, son datos de ejemplo
así es como me queda después de ordenar por provincia
¿Qué estoy haciendo mal?