Macro para Actualizar Tablas Dinámicas en Hojas Protegidas

Actualizado el: 02/10/2025
Sub Actualizar_TablasDinam()

    Dim ws As Worksheet
    Dim claveProteccion As String
    Dim pt As PivotTable
    Dim nombreHoja As String

    claveProteccion = "1111"
    nombreHoja = "TD_Print"

    Set ws = Worksheets(nombreHoja)

    ' Desproteger hoja
    ws.Unprotect Password:=claveProteccion

    ' Refrescar tablas dinámicas si existen
    On Error Resume Next
 For Each Hoja In ActiveWorkbook.Sheets
        'Recorremos cada TD de cada hoja
        For Each TD In Hoja.PivotTables
            'Actualizar cada TD
            TD.RefreshTable
        Next TD
    Next Hoja
   
    
    On Error GoTo 0

    ' Reproteger hoja con permisos para segmentaciones

 ws.Protect Password:=claveProteccion, DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFiltering:=True, AllowUsingPivotTables:=True

MsgBox "Carta Actualizada", vbInformation, "Excel Consultor"

End Sub