Necesito que los cuadro dinámicos se actualicen automáticamente ante cambios en los datos de origen.

Necesito que los cuadros dinámicos de una hoja, que son varios, se actualicen automáticamente al cambiar los datos de origen, sin necesidad de dar a actualizar.

1 Respuesta

Respuesta

Entiendo que te refieres a tablas dinámicas. Prueba con este código, que va en el módulo de la hoja donde estén los datos de origen de las tablas dinámicas (pulsación botón derecho sobre su etiqueta->ver código):

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim pvt As PivotTable
    For Each pvt In Worksheets("Hoja2").PivotTables 'Hoja donde se encuentre/n la/s tabla/s dinámica/s
        With pvt.PivotCache
            If Not Intersect(Target, Range(Application.ConvertFormula(Replace(.SourceData, "F", "R"), xlR1C1, xlA1))) Is Nothing Then .Refresh
        End With
    Next pvt
End Sub

Habrá que cambiar "Hoja2" por el nombre de la hoja donde estén las TDs.

Yo probaría con una copia del libro, por si no hace lo que necesitas.

A tener en cuenta que dependiendo del número de tablas dinámicas y del volumen de los datos este código podría empeorar el rendimiento del libro, ya que cada vez que se modifique la hoja con los datos de origen tendrá que ejecutarse el código.

Saludos_

Buenas tardes

Me sale se ha producido el erroe 1004 en tiempo de ejecución:

Error en el método "Range" de objeto"_Worksheet"

Como lo puedo solucionar

Yo es que todavía no estoy seguro de que estemos hablando de lo mismo. He subido un ejemplo a http://www.jrgc.es/ejemplos/ejemplo_20190328a.xlsm

Los datos para las 2 tablas dinámicas en Hoja2 están en Hoja1! A1:C14, y si se modifica algo en ese rango las 2 tablas dinámicas se actualizan automáticamente.

Saludos_

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas