Actualización de autofiltros en tabla dinámica

Buenas, me ocurre un problema que casi me planteo como que sea un error de excel... Aunque seguro que es mío.
Tengo una tabla dinámica en la que voy filtrando valores con el autofiltro que aparece en cada una de los campos de fila. Hasta aquí, perfecto.
Luego, actualizo los valores de los datos de origen y pincho en "actualizar datos" de la tabla dinámica, y se actualiza todo correctamente. Bueno, todo lo que son datos, sí. Pero no se actualiza bien la lista que me aparece cuando despliego un filtro: resulta que en lugar de aparecer los nuevos valores disponibles, lo que tenemos es los valores antiguos (que ya no existen en los nuevos datos) y se añaden los nuevos tipos que aparezcan. Así, cada vez que actualizo datos en el origen, se van añadiendo líneas y líneas al listado del autofiltro de la tabla dinámica, que además se corresponden con valores que ya no tienen porqué existir entre los datos.
Finalmente, tenemos en los autofiltros listas larguísimas, desordenadas, donde buscar el dato que nos interesa cada vez es más complicado. ¿Por qué no se actualiza bien este listado al actualizar la tabla dinámica? ¿No hay opción de "resetear" la lista en lugar de que se añadan los nuevos valores abajo y vaya manteniendo un histórico de todos los que ha habido en algún momento?
Muchas gracias.

1 respuesta

Respuesta
1
Yo la única forma que he conseguido hacer esto ha sido mediante código:
Sub Borrar_PivotItems()
    'Este código actualiza los elementos que aparecen en el desplegable de la/s tabla/s dinámica/s del libro.
    Dim wksH As Worksheet
    Dim ptP As PivotTable
    Dim pfP As PivotField
    Dim piP As PivotItem
    Dim i As Integer
On Error Resume Next
    For i = 1 To 2
    For Each wksH In ActiveWorkbook.Worksheets
          For Each ptP In wksH.PivotTables
             For Each pfP In ptP.PivotFields
                For Each piP In pfP.PivotItems
                   piP.Delete
                Next
             Next
             ptP.RefreshTable
          Next
        Next
    Next
    Set piP = Nothing
    Set pfP = Nothing
    Set ptP = Nothing
    Set wksH = Nothing
End Sub
Perfecto! Es exactamente lo que quería, es una pena que haya que hacerlo por código pero bueno, así dejamos al Excel una oportunidad de mejora para su próxima versión.
Muchísimas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas