Recorrer cada ítem de una tabla dinámica o mejor de una pivotfields VBA

Tengo una tabla dinámica llamada "tabla dinámica 2" y quiero que en la opción de filtros que en este caso es la de "Tasa Deja Mercado" que seria la pivotfields, quiero que me muestre los valores mayores a 700.

Por el momento tengo el siguiente código pero en los items me da valores que no existen cuando los busco manualmente al desplegar el filtro.

Sub items()
'
Dim PvtTbl As PivotTable
Dim pvtItm As PivotItem
Set PvtTbl = Worksheets("Res TASA").PivotTables("Tabla dinámica2")
For Each pvtItm In PvtTbl.PivotFields("Tasa Deja Mercado").PivotItems
If pvtItm > 70# Then
    pvtItm.Visible = True
Else: pvtItm.Visible = False
End If
Next
End Sub

Para ser mas claro dejare imágenes.

La tabla dinámica con la cual estoy intentando hacer lo ya mencionado, es la que esta resaltada.

Quiero que la macro revise cada ítem que esta en la lista de "Tasa Deja Mercado" y si es mayor a 700 o el numero que yo le indique, traiga el valor, que se haga visble

1 Respuesta

Respuesta
1

H o  l a:

Al parecer el dato que se almacena en el campo de la tabla dinámica, cuando lo ocupas en los filtros, lo almacena como Texto.

Realicé unas pruebas y me funciona así:

Sub items()
'
    Dim PvtTbl As PivotTable
    Dim pvtItm As PivotItem
    Application.ScreenUpdating = False
    Set PvtTbl = Worksheets("Res TASA").PivotTables("Tabla dinámica2")
    For Each pvtItm In PvtTbl.PivotFields("Tasa Deja Mercado").PivotItems
        If IsNumeric(pvtItm.Value) Then valor = Val(pvtItm.Value) Else valor = pvtItm.Value
        If valor > 700 Then
            pvtItm.Visible = True
        Else
            pvtItm.Visible = False
        End If
    Next
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas