¿Cómo agregar un orden de clasificación personalizado a una tabla dinámica con VBA?

Si deseas agregar un orden de clasificación personalizado a una tabla dinámica utilizando VBA en Excel, puedes seguir estos pasos generales. La idea es definir el orden deseado para un campo específico, y luego aplicar este orden a la tabla dinámica.

Aquí tienes un ejemplo de cómo hacerlo:

  • Definir el Orden Personalizado:

Necesitarás determinar cuál será el orden personalizado. Puedes hacerlo a través de una lista o un array en VBA.

  • VBA para Ordenar la Tabla Dinámica:

Usaremos VBA para aplicar este orden personalizado a la tabla dinámica.

Sub OrdenPersonalizadoPivotTable()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim customOrder() As Variant
    Dim i As Integer
    
    ' Asigna el libro y la hoja en la que está la tabla dinámica
    Set wb = ThisWorkbook
    Set ws = wb.Sheets("Hoja1") ' Cambia "Hoja1" por el nombre de tu hoja

    ' Asigna la tabla dinámica
    Set pt = ws.PivotTables("NombreTablaDinamica") ' Cambia "NombreTablaDinamica" por el nombre de tu tabla dinámica

    ' Asigna el campo que deseas ordenar
    Set pf = pt.PivotFields("NombreCampo") ' Cambia "NombreCampo" por el nombre del campo que deseas ordenar

    ' Define el orden personalizado
    customOrder = Array("Primero", "Segundo", "Tercero") ' Descripciones de los elementos en el orden deseado

    ' Aplicar el orden personalizado
    With pf
        ' Limpia cualquier ordenamiento previo
        .AutoSort xlManual, .SourceName

        ' Recorre el orden personalizado y aplícalo
        For i = LBound(customOrder) To UBound(customOrder)
            .PivotItems(customOrder(i)).Position = i + 1
        Next i
    End With

End Sub

Explicación del Código:

  • Inicialización: Definimos las variables para el libro, la hoja, la tabla dinámica y el campo de interés.
  • Definición del Orden Personalizado: Creamos un array `customOrder` que contiene los valores en el orden deseado.
  • Bucle de Ordenación: Los elementos de `customOrder` se recorren y se establece su posición en el campo de la tabla dinámica mediante `.Position`.

Notas:

  • Cambia «Hoja1», «NombreTablaDinamica» y «NombreCampo» por los nombres específicos de tu hoja, tabla dinámica y campo.
  • Este método supone que los elementos que estás ordenando ya existen en el campo de la tabla dinámica.
  • Asegúrate de que la tabla dinámica y el campo están correctamente establecidos en tu entorno.

Este enfoque te permitirá ordenar los elementos de un campo en una tabla dinámica según un orden personalizado que definas en VBA.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

Deja un comentario