Actualizar tabla dinámica según cambios en un rango en VBA

Buenas noches a todos los expertos... Intento cuadrar una macro que huy dia me funciona bien cuando actualizo una celda de una columna especifica.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 8 Then ActiveSheet.Unprotect Password:="XXXX"

ActiveSheet.PivotTables("Administrativos").PivotCache.Refresh

Application.Calculation = xlCalculationAutomatic

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True, Password:="XXXX"

End If

End Sub

Pero ahora necesito extender a que la actualización de la tabla dinámica se realice si el cambio se da en un rango de varias columnas. Y me arroja error.

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range(":H2:Q25")) Then

ActiveSheet.Unprotect Password:="XXXX"

ActiveSheet.PivotTables("Administrativos").PivotCache.Refresh

Application.Calculation = xlCalculationAutomatic

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True, Password:="XXXX"

End If

End Sub

En negrilla les dejo lo que el depurador me muestra resaltado.

Les agradezco su acostumbrada colaboración.

1 respuesta

Respuesta
1

Cambia la línea por esta

If Not Intersect(Target, Range("H2:Q25")) Is Nothing Then

Saludos. Dam

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas