Vous êtes sur la page 1sur 7

Filtrar tabla dinmica

segn valor de celda


Cuando tienes varias tablas dinmicas y necesitas aplicar un filtro a todas
ellas al mismo tiempo en base al valor de una celda te das cuenta que no
existe una manera fcil de hacerlo en Excel. Hoy analizaremos una
alternativa para filtrar una tabla dinmica segn el valor de una celda.
Antes de continuar, debo aclarar que los filtros de informe son la opcin ms
sencilla para filtrar una tabla dinmica ya que podemos elegir los datos que
deseamos visualizar. Sin embargo, hay ocasiones en las que una frmula de
Excel inserta un valor en una celda por el cual queremos filtrar una tabla
dinmica o simplemente porque el usuario desea ingresar el texto
manualmente. Cualquiera que sea el caso, ser necesario utilizar cdigo
VBA para filtrar la tabla dinmica en base al valor de dicha celda.
Como primer ejemplo utilizaremos una tabla dinmica que muestra la lista de
estados con sus respectivos montos de ventas de los ltimos dos aos.
Cada estado pertenece a una regin (Norte, Sur, Este, Oeste) que est
presente como el filtro de informe de la tabla dinmica, pero no utilizaremos
dicho filtro de informe sino que aplicaremos el filtro a la tabla dinmica en
base al valor de la celda F1.
Sigue a Excel Total
Find us on Facebook
Excel Total
20,316 people like Excel Total.
Facebook social plugin
Like Like
INICIO FUNCIONES ACERCA
Filtrar tabla dinmica segn valor de celda http://exceltotal.com/filtrar-tabla-dinamica-segun-valor-de-celda/?utm...
1 de 7 12/03/2014 21:44
Filtrar tabla dinmica segn valor de celda
El cdigo que utilizaremos detecta cualquier cambio en la celda F1 y
posteriormente se realiza la actualizacin de los datos de la tabla dinmica.
La coleccin PivotTables nos permite acceder a los campos de una tabla
dinmica. En nuestro ejemplo nos interesa el campo Region para el cual se
limpia cualquier filtro antes de aplicar uno nuevo basado en el valor de la
celda F1. El resultado de esta macro es el siguiente:
Al ingresar el valor Norte en la celda F1 la macro aplicar el filtro a la tabla
dinmica y puedes notar que el filtro de informe tambin cambia
automticamente al valor Norte.
En cuanto a los posibles errores que se pudieran presentar, nuestra macro
considera aquellos casos en los que ingresamos una Region no vlida en la
celda F1, o si simplemente dejamos la celda en blanco, ya que con la lnea
de cdigo On Error Resume Next se captura el error y se limpia el filtro.
Macro para filtrar todas las tablas dinmicas
Como segundo ejemplo crear una tabla dinmica diferente en otra hoja y
modificar la macro anterior para filtrar todas las tablas dinmicas del libro
de acuerdo al valor de la celda F1. El cdigo de la macro es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F1")) Is Nothing Then
'En base al campo Region de la Tabla dinmica1:
With PivotTables("Tabla dinmica1").PivotFields("Region"
'Limpiar todos los filtros
.ClearAllFilters
'Filtrar por el valor de la celda F1
On Error Resume Next
.CurrentPage = Range("F1").Value
End With
End If
End Sub
1
2
3
4
5
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F1")) Is Nothing Then
Dim hoja As Worksheet
Filtrar tabla dinmica segn valor de celda http://exceltotal.com/filtrar-tabla-dinamica-segun-valor-de-celda/?utm...
2 de 7 12/03/2014 21:44
A diferencia del primer ejemplo, en esta macro utilizamos la coleccin
ThisWorkbook.Worksheets para recorrer todas las hojas del libro y de esa
manera acceder a todas las tablas dinmicas. Al ingresar un valor en la
celda F1 se aplicar el filtro correspondiente a la tabla dinmica de la hoja
actual:
Adems, si cambiamos a la hoja del primer ejemplo, notars que tambin se
ha aplicado el mismo filtro a la tabla dinmica:
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Dim td As PivotTable
'Recorrer todas las hojas del libro
For Each hoja In ThisWorkbook.Worksheets
'Recorrer las tablas dinmicas de la hoja
For Each td In hoja.PivotTables
'En base al campo Region de la tabla dinmica:
With td.PivotFields("Region")
'Limpiar todos los filtros
.ClearAllFilters
'Filtrar por el valor de la celda F1
On Error Resume Next
.CurrentPage = Range("F1").Value
End With
Next td
Next
End If
End Sub
Filtrar tabla dinmica segn valor de celda http://exceltotal.com/filtrar-tabla-dinamica-segun-valor-de-celda/?utm...
3 de 7 12/03/2014 21:44
Observa que el filtro de informe muestra el valor Sur aunque la celda F1 est
vaca, pero eso no importa porque el filtro se ha aplicado considerando la
celda F1 de la otra hoja. Lo nico que es necesario para que esta macro
funcione correctamente es que todas las tablas dinmicas deben incluir el
campo por el cual se est filtrando, que en nuestro ejemplo es el campo
Region.
Las macros que hemos creado te ayudarn a filtrar una tabla dinmica por
el valor de una celda e inclusive podrs aplicar dicho filtro a todas las tablas
dinmicas de un libro si as lo requieres. Descarga el libro de trabajo
utilizado en este artculo y contina probando los filtros.
Por ltimo debo decir que, si en lugar de utilizar el valor de una celda,
deseas filtrar varias tablas dinmicas con un solo filtro de informe, te
recomiendo leer el artculo Cmo vincular tablas dinmicas por un filtro de
informe donde encontrars otra alternativa de solucin.
Publicado el 12 de marzo del 2014 por Moiss Ortz
Excel Total
20,316 people like Excel Total.
Facebook social plugin
Like Like
10 pensamientos en Filtrar tabla dinmica
segn valor de celda
Marcos
Filtrar tabla dinmica segn valor de celda http://exceltotal.com/filtrar-tabla-dinamica-segun-valor-de-celda/?utm...
4 de 7 12/03/2014 21:44
muchas gracias por tus enseanzas.
Responder
Basilio Vallejos Campos
En mis servicios que estoy prestando a una institucin, es de
mucha ayuda y de utilidad.
Responder
Mximo
Hola, Moiss. Como siempre, un artculo muy til e interesante.
Podras aclararme una pequea duda? En el ejemplo dices que
para filtrar todas las tablas slo hay que introducir una regin en la
celda F1. Pero, en qu hoja exactamente? En la que contiene la
macro? Sera muy interesante que se pudiera hacer en dicha celda
pero de cualquier hoja.
Un saludo y gracias por tu atencin.
Responder
Moiss Ortz Autor
Hola Mximo, el texto se introduce en la celda F1 de la
hoja actual. Si descargas el libro de trabajo vers que
cada ejemplo est en una hoja diferente, la hoja
Ejemplo1 tiene la macro que filtra una sola tabla
dinmica. La hoja Ejemplo2 tiene la macro que filtra
todas las tablas dinmicas.
Poro otro lado, es totalmente factible modificar el cdigo
para que consulte el valor de una celda en otra hoja para
entonces aplicar el filtro, solo es cuestin de obtener
correctamente el valor de dicha celda, por ejemplo:
ThisWorkbook.Sheets(EjemploX).Range(F1)
Responder
Gerardo
El Excel es muy importante en la Empresa donde trabajo, las
tablas dinamicas son de mucha utilidad.
Responder
Filtrar tabla dinmica segn valor de celda http://exceltotal.com/filtrar-tabla-dinamica-segun-valor-de-celda/?utm...
5 de 7 12/03/2014 21:44
jakson
De mucha utilidad,
Muchas gracias.
Responder
LUIS ROMERO GONZALES
Que buen tema en trabajar con Filtros en Macros gracias por la
informacin favor de tocar el tema de macros se agradecera
mucho.
Atte.
Luis Romero.
Responder
Manuel
hola,
la verdad que yo creo ( no soy experto) que existe una forma mas
fcil de hacerlo, y creo que lo vi en esta pagina , es con segmento
de datos de tabla dinmica, en el cual puedes vincular las tablas
dinmicas y crear un filtro el cual manda a todas las tablas.
Responder
Moiss Ortz Autor
Hola Manuel, gracias por tu comentario. El mtodo que
mencionas es precisamente el que menciono al final del
artculo:
http://exceltotal.com/como-vincular-tablas-dinamicas-
por-un-filtro-de-informe/
Esa alternativa no necesariamente sustituye la descrita
en este artculo ya que la segmentacin de datos no
toma el valor de una celda, pero nos ayuda a filtrar varias
tablas dinmicas utilizando un solo filtro de informe.
Responder
sergio
Excelente, gracias, la verdad son muy valiosos tus apoyos, para
hacer mas facil nuestra tarea diaria
Responder
Filtrar tabla dinmica segn valor de celda http://exceltotal.com/filtrar-tabla-dinamica-segun-valor-de-celda/?utm...
6 de 7 12/03/2014 21:44
Deja un comentario
Tu direccin de correo electrnico no ser publicada. Los campos
necesarios estn marcados *
Nombre *
Correo electrnico *
Comentario
Filtrar tabla dinmica segn valor de celda http://exceltotal.com/filtrar-tabla-dinamica-segun-valor-de-celda/?utm...
7 de 7 12/03/2014 21:44

Vous aimerez peut-être aussi