Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

miércoles, 7 de noviembre de 2018

Cambiar el filtro de todas las tablas dinamicas en en libro sólo con una lista desplegable

Hola

Pues sí! Como has leído en el título.

Hoy vamos a ver eso.

Imagina que tienes algunas o muchas tablas dinámicas en tu libro.

Y que muchas de ellas tiene la misma segmentación, por ejemplo región o producto.

Y que cambiando la selección en una lista desplegable fuera de una tabla dinámica cambiasen, todas las tablas dinámicas..

Yo recuerdo antiguamente que había que cambiar los filtros uno a uno, hasta que apareció la segmentación de datos, la cual te permite relacionarla con varias tablas dinámicas.

Pero también se puede hacer a traves de una lista desplegable con una pequeña macro.





Pues veamos como hacer esto.

En mi archivo (adjunto más abajo), hay varias Tablas Dinámicas en las hojas Pivot Ventas, Otros Pivots, Otros Pivots 2 y Otros Pivots 3.

La ubicación de las tablas dinámicas no es relevante para este ejercicio, es decir, da exactamente igual donde están colocadas. El código de la macro encontrará todas las tablas igualmente.

Veamos el código, el cual se ha de ubicar en la ventalla Pivot Ventas


Para abrir la ventana de VBA basta con hacer clic en ALT + F11.




Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim pt As PivotTable
Dim pi As PivotItem
Dim strField As String

strField = "Region"

On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False
    If Target.Address = Range("D2").Address Then
       
        For Each ws In ThisWorkbook.Worksheets
            For Each pt In ws.PivotTables
                With pt.PageFields(strField)
                    For Each pi In .PivotItems
                        If pi.Value = Target.Value Then
                            .CurrentPage = Target.Value
                            Exit For
                        Else
                            .CurrentPage = "(All)"
                        End If
                    Next pi
                End With
            Next pt
        Next ws
   
    End If

Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub

La macro recorre todas las tablas dinámicas en un libro, y cambia el campo del filtro según la selección hecha en la celda D2.

Al cambiar por ejemplo esa celda de Asia a Europa, todas las tablas dinámicas cambian.







Descárgate el archivo:

Lista desplegable para cambiar Pivot Tables


Entradas relacionadas





Quieres más trucos?





Te ha gustado el artículo?

No te olvides de mostrar tu gratitud hacia el autor (yo) mediante una de las 2 siguientes acciones:

1. Puedes dejar una donación pinchando en la siguiente imagen.

PayPal. La forma rápida y segura de pagar en Internet


2. Puedes recomendar el artículo en Google haciendo clic en g+1 (justo después del artículo), también puedes compartirlo en Facebook, y/o dejar comentarios.

Quieres aprender más en Excel o tienes algún problema que necesita solución?

Puedo ofrecer servicios de consultoría así como cursos personalizados online. Mírate el siguiente enlace si estás interesado/a.



El Sabio de Excel busca colaborades del blog

Si te interesa compartir tu conocimiento sobre Excel de tal manera que puedas ayudar a otras personas, por favor mándame un email a elsabiodeexcel@gmail.com


Subscríbete y recibe todos las entradas por email


Para ello regístrate suministrando tu email en el sitio "Recibe los trucos en tu email" del menú de la derecha.

O sígueme por las redes sociales


No hay comentarios:

Publicar un comentario