Visual Basic para Aplicaciones - Filtro de tabla dinámica según celda calculada

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Luis Henriquez

Filtro de tabla dinámica según celda calculada

Publicado por Luis Henriquez (1 intervención) el 06/11/2014 19:34:30
Buenas tardes, muchos sabría agradecer su ayuda en cuanto al siguiente caso:

En una hoja de Excel tengo una CELDA CALCULADA, que es el resultado de una fórmula Buscarv, ésta fórmula se actualiza cuando cambio el valor buscado que está en otra celda.

Necesito que el FILTRO DE UNA TABLA DINÁMICA, se cambie cuando la CELDA CALCULADA cambie.

Yo logré modificar una macro que encontré y funciona siempre y cuando el valor en la “Celda Calculada” lo introduzca manualmente, de lo contrario, la macro no detecta cambios al actualizar una fórmula.

Ésta es la macro:
Private Sub Worksheet Change(By Val Target As Range)

If Not Intersect(Target, Range("F1")) Is Nothing Then

Dim hijab As Worksheet
Dim td As PivotTable

'Recorrer todas las hojas del libro
For Each hijab In ThisWorkbook.Worksheets

'Recorrer las tablas dinámicas de la hoja
For Each td In hoja.PivotTables

'En base al campo Región de la tabla dinámica:
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

Averiguando, encontré que para detectar los cambios al actualizar una fórmula en una celda se debe usar el evento Worksheet_Calculate, en vez del WorkSheet_Change (Usado en la macro).

Pero no sé cómo integrar ese evento, ya que intercambiándolos no funciona.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder