Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
MACRO ORDENAR

Ordenar datos con macros – VBA EXCEL

| 8 Comments

Excel VBA para filtrar y ordenar datos

Desactivación de filtros

 Cuando se trabaja en una base de datos Excel es posible que desee asegurarse de que todos los filtros  estén desactivados. Para ello se iniciará el proceso con dos “if”. Por ejemplo, con una base de datos a partir de la celda A1  ejecutaremos 2 sentencias:

Range(“A1” ).Select         

          If ActiveSheet.AutoFilterMode = True Then Selection.AutoFilter

           If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData

Ordenar los datos

Ejemplos:

– La siguiente macro de Excel funciona con cualquier tamaño de base de datos  a partir de la celda A1 y funcionará en cualquier versión de       Excel (1997 a 2010).

Sub proFilter()

Range(“A1”).Sort Key1:=Range(“A2”), Order1:=xlAscending, Header:=xlYes

End Sub

– Ordenar  datos, considerando  tres campos diferentes.

Sub proFilter()

Range(“A1”).Sort Key1:=Range(“A2”), Order1:=xlAscending, Key2:=Range( _         “B2”), Order2:=xlAscending, Key3:=Range(“C2”), Order3:=xlAscending, _         Header:=xlYes

End Sub

Ejercicio.

– Aplicaremos el ordenamiento de datos por familias y sub-familias.

MACRO ORDENAR

(Para mayor visualización de la imagen, hacer click en la misma)

ORDENAR DATOS

Por: MARIA ANTONIETA VALENZA COLLADO

8 Comments

  1. Hola desde ya muchas gracias, logre ordenar mis datos con este método en la hoja1, en la hoja2 tengo los mismos datos convinados a la h1 pero con otros tipos de datos asociados, hay alguna manera de que al cambiar los datos en la h1, en la hoja2 tambien se ordenen con su rango de celdas asociadas. O sea, detectar el cambio en la hoja2 y ordenar todo el rango ese. Desde ya muchas gracias

  2. Exelente!! Muchas gracias, es un codigo util, simple y efectivo.

  3. Perfecto!!! muchas gracias.

  4. gracias………

  5. excelente. Gracias por aportar tus conocimientos, que a tantos nos ayudan.

  6. Gracias por el ejemplo !!, frente a eso me sale una duda, si quisieras que se ordenaran los datos, pero necesitas que un producto en especifico quede arriba o abajo como lo harías?. Pregunto esto porque en el trabajo que estoy realizando el rango de datos que hay para ordenar puede variar y necesito que si se ingresa un producto en especifico este quede en el tope del rango.

    Esperando una pronta respuesta

    De antemano gracias !!

  7. Que lineas de codigo mas simple.. excelente funcionamiento, me ahorro muchas lineas innecesarias.

  8. buena noche segui sus consejos los cuales agradesco y logre que se ordenaran los datos en forma ascendente correctamente, pero al hacerlo en forma descendente la macro toma los renglones en blanco y coloca los datos al final de la lista.

    dejo las instrucciones por si me hacen el favor de ayudarme.

    Sub ordenar()
    Dim rangoDatos As Range
    Dim campoOrden As Range
    Dim ultimaFila As Long
    ActiveSheet.Unprotect Password:=”xxx”

    ultimaFila = Sheets(“SVP”).Range(“C” & Rows.Count).End(xlUp).Row
    Set rangoDatos = Range(“C3:BK” & ultimaFila)
    Set campoOrden = Range(“bk3”)

    rangoDatos.Sort key1:=campoOrden, order1:=xlAscending, Header:=xlnot
    ActiveSheet.Protect (“xxx”)
    End Sub

    si me dan la solución al correo estare agradecido
    por su atención gracias

Deja un comentario

Required fields are marked *.


Excel Avanzado located at , Lima, Perú . Reviewed by usuarios rated: 4.7 / 5