Estimado Dante! Quisiera ejecutar una macro al momento de que ciertas celdas cambian

Tengo una pregunta sobre como ejecutar automáticamente una macro al cambiar ciertas celdas.

Las celdas que ejecutan la macro son B38, C38 y D38, quisiera que al cambiar cualquiera de estas 3 celdas la macro se ejecutara automáticamente

Lo que hace la macro es actualizar dos tablas dinámicas,

ActiveSheet. PivotTables("Mes Actual"). PivotCache. Refresh
ActiveSheet. PivotTables("Mes Anterior"). PivotCache. Refresh

Aunque tengo una duda, a veces me sale un mensaje que dice,

¿Desea reemplazar el contenido de las celdas de destino en [Gastos Personales 1.xlsm]Evolución de Gastos?

A este mensaje le pongo que si y la tabla se actualiza bien. La misma tabla nunca sobreescribira nada puesto que es la ultima información de la página.

¿Me podrías ayudar con esto

Respuesta
1

Incluye la siguiente macro en los eventos de la hoja

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    Application.DisplayAlerts = False
    If Not Intersect(Target, Range("B38, C38, D38")) Is Nothing Then
        ActiveSheet.PivotTables("Mes Actual").PivotCache.Refresh
        ActiveSheet.PivotTables("Mes Anterior").PivotCache.Refresh
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Saludos. Dante Amor

No olvides valorar la respuesta.

Mejor utiliza esta macro.

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    Application.DisplayAlerts = False
    If Not Intersect(Target, Range("B38, C38, D38")) Is Nothing Then
        For Each c In Target
            ActiveSheet.PivotTables("Mes Actual").PivotCache.Refresh
            ActiveSheet.PivotTables("Mes Anterior").PivotCache.Refresh
            Exit For
        Next
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas