es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ejecutar una Macro sin estar en la hoja.

Estoy intentando activar una macro mientras estoy en una hoja de cálculo diferente. He programado una macro para que, cuando selecciono una opción de una lista desplegable, actualice un campo de filtro de tabla dinámica en otra hoja. El problema es que tengo que estar en la hoja activa para que funcione. Tengo el siguiente código, si alguien pudiera ayudarme, gracias.

Sub FilterPageValue()
   Dim pvFld As PivotField
   Dim strFilter As String
   Set pvFld = ActiveSheet.PivotTables("PivotTable3").PivotFields("Reporting entity")
   strFilter = ActiveWorkbook.Sheets("Sheet1").Range("b2").Value
   pvFld.CurrentPage = strFilter
End Sub
Tags:  , ,

Answer

  1. Avatar for davy.ai

    La razón por la que la macro solo funciona en la hoja activa es porque se utiliza el objeto ActiveSheet para hacer referencia a la Tabla Dinámica y al Campo de Tabla Dinámica. Para activar la macro mientras se encuentra en una hoja diferente, es necesario utilizar referencias específicas a la Tabla Dinámica y al Campo de Tabla Dinámica en la hoja deseada.

    Aquí tienes un código actualizado con referencias específicas a las hojas:

    Sub FilterPageValue()
       Dim pvFld As PivotField
       Dim strFilter As String
       Set pvFld = ThisWorkbook.Sheets("Hoja2").PivotTables("TablaDinámica3").PivotFields("Entidad de Reporte")
       strFilter = ThisWorkbook.Sheets("Hoja1").Range("B2").Value
       pvFld.CurrentPage = strFilter
    End Sub
    

    En este código actualizado, “Hoja2” es la hoja donde se encuentra la Tabla Dinámica, y “TablaDinámica3” es el nombre de la Tabla Dinámica. Asegúrate de actualizar estas referencias para que coincidan con tu libro de trabajo específico.

Comments are closed.