Saltar al contenido

Macro para relacionar un filtro de tabla dinamica con una celda


Recommended Posts

publicado

Tengo una tabla dinámica y quiero que se actualice el filtro por el valor puesto en una celda.

Ya busque codigos que hagan esto y si existen, el problema es que mi tabla viene de PowerPivot y estos codigos no funcionan

Al hacer una macro el sistema tira el siguiente codigo:

ActiveSheet.PivotTables("Detalle_Cuentas").PivotFields( _
        "[Cuenta_Externa].[N_extendido].[N_extendido]").ClearAllFilters -(hasta aquí funciona bien)-
   

ActiveSheet.PivotTables("Detalle_Cuentas").PivotFields( _
        "[Cuenta_Externa].[N_extendido].[N_extendido]").CurrentPage = _
        "[Cuenta_Externa].[N_extendido].&[(05-002) Mano de Obra Directa]"
(Esta es la parte que quiero sustituir por un valor ubicado en la celda ("AA1"))

En Internet encontre este codigo que ha de funcionar si la tabla dinamica es creada con un conjunto de datos de Excel

Private Sub Worksheet_Change(ByVal Target As Range)
 
If Not Intersect(Target, Range("AA1")) Is Nothing Then
 
    'En base al campo Region de la Tabla dinámica1:
    With PivotTables("Detalle_Cuentas").PivotFields("N_extendido")
     
        'Limpiar todos los filtros
        .ClearAllFilters
         
        'Filtrar por el valor de la celda F1
        On Error Resume Next
        .CurrentPage = Range("AA1").Value
         
    End With
End If
 
End Sub

pero Por tratarse de una tabla creada en PowerPivot este codigo me tira el siguiente mensaje de error "No se puede obtener la propiedad PivotFields de la clase PivotTable"

¿Alguien podrá ayudarme?

 

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.