Filtro tabla dinamica por dos datos

6 envíos / 0 nuevos
Último envío
crengifo
Imagen de crengifo
Offline
última acción: Hace 1 mes 3 semanas
alta: 14/02/2017 - 01:19
Puntos: 80
Filtro tabla dinamica por dos datos

Buenos dias,

Tengo una tabla dinamica la cual quiero que se filtre por dos celdas en mi caso molino y uso, que al colocar datos en las celdas k1 y k2 haga el filtro

Adjunto reporte.

Este es el codigo parauna sola celda no se como haerla para los dos celdas.

Private Sub Worksheet_Change(ByVal Target As Range)

 

    Dim xPTable As PivotTable

    Dim xPFile As PivotField

    Dim xStr As String

    On Error Resume Next

    If Intersect(Target, Range("K1:K2")) Is Nothing Then Exit Sub

    Application.ScreenUpdating = False

    Set xPTable = Worksheets("Datos_Cem").PivotTables("Tabla dinámica1")

    Set xPFile = xPTable.PivotFields("MOLINO")

    

    xStr = Target.Text

    xPFile.ClearAllFilters

    xPFile.CurrentPage = xStr

    Application.ScreenUpdating = True

    

End Sub

 

Atento a sus comentarios gracias

AdjuntoTamaño
File libro2.xlsm7.34 MB
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 hora 13 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 9690
según entiendo, si escriben

según entiendo, si escriben en la celda K1 utilizaríamos eso como filtro para MOLINO, y si escriben algo en la celda K2 utilizaríamos eso como criterio para USO

en este caso, simplemente modificaría la línea donde estableces el valor de la variable xPFile dependiendo de qué celda sea la modificada

Por ejemplo así

en vez de esto:

Set xPFile = xPTable.PivotFields("MOLINO")

puedes poner esto otro

   If Target.Address = "$K$1" Then

        Set xPFile = xPTable.PivotFields("MOLINO")

    ElseIf Target.Address = "$K$2" Then

        Set xPFile = xPTable.PivotFields("USO")

    End If

 

El resto te vale igual

 

 

Data Tools Suite
datos y tablas con Excel

crengifo
Imagen de crengifo
Offline
última acción: Hace 1 mes 3 semanas
alta: 14/02/2017 - 01:19
Puntos: 80
Excelente, otra inquietud que

Excelente, otra inquietud que debo hacer para que filtre varias tablas dinamicas que tengo por el mismo concepto "Molino".

De antemano muchas gracias

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 hora 13 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 9690
Repite los pasos para cada

Repite los pasos para cada tabla

depende de donde estén tus tablas, de si son todas o sólo algunas, ...

Por ejemplo puedes hacer un bucle que las recorra todas las tablas dinámicas de todas las hojas del libro, podría ser algo así:

Sub todaslastablasdinamicas()

   Dim mihoja As Worksheet, miTabladinamica As PivotTable

    For Each mihoja In ActiveWorkbook.Worksheets

        For Each miTabladinamica In mihoja.PivotTables

            'aquí lo que quieras hacer con cada tabla dinámica

        Next

    Next

End Sub

 

 

 

 

Data Tools Suite
datos y tablas con Excel

Cron
Imagen de Cron
Offline
última acción: Hace 1 hora 21 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 11310
Y digo yo... En vez de

Y digo yo... En vez de reinventar la rueda, ¿por qué no utilizas las herramientas de segmentación de datos? Hacen exactamente lo que tú quieres que hagan, y funcionan (hasta donde yo sé) desde Excel 2010.

 

Un saludo

crengifo
Imagen de crengifo
Offline
última acción: Hace 1 mes 3 semanas
alta: 14/02/2017 - 01:19
Puntos: 80
Ok muchas gracias 

Ok muchas gracias