El uso de eventos de hoja de gráfico (link: / tips-how-to-move-a-chart-to-a-new-sheet-in-excel [hoja de trabajo especialmente para gráficos]) es bastante simple. Pero cuando se trata de usar eventos en gráficos incrustados, no es tan simple. Pero les aseguro que los eventos con gráficos incrustados no son tan difíciles de activar. Es muy parecido a link: / events-in-vba-how-to-create-application-level-events-in-excel-vba [creando eventos de aplicación]. Entonces, sin más demora, comencemos.

Por lo tanto, hay dos pasos para activar un evento de gráfico integrado. Primero está creando una clase de evento de gráfico y definiendo eventos. El segundo es crear un objeto de esa clase de evento. Eso es.

Paso 1: Crear clase de evento de gráfico y definir eventos

  • Inserte un`link: / modules-class-modules-in-vba-vba-class-modules-and-how-to-use-them [class module] `. Nómbralo como quieras. Lo llamé ChartClass.

  • Defina una variable de evento de tipo Gráfico con la palabra clave WithEvents.

Private WithEvents CEvents As Chart
  • Inicialice este evento en la subrutina class_initialize ().

En el menú desplegable de la izquierda, seleccione clase. Luego, en el menú desplegable superior derecho, seleccione inicializar.

Private Sub Class_Initialize()

Set CEvents = ActiveSheet.ChartObjects(1).Chart

End Sub

Aquí estamos inicializando el gráfico CEvents con el primer gráfico creado en esa hoja. El 1 es el número de índice de los objetos del gráfico en la hoja activa.

  • Ahora defina los eventos que desea utilizar. En el menú desplegable de la parte superior izquierda, seleccione el objeto CEvent. Todos los procedimientos de manejo de eventos disponibles estarán disponibles para usted en el menú desplegable de la parte superior derecha. Seleccione lo que necesite y defina lo que desea hacer cuando se active ese evento.

Para demostrar el uso, elijo el evento CEvents_Activate. Intentaré mostrarle al usuario que el evento de gráfico está activado en un cuadro de mensaje.

Private Sub CEvents_Activate()

MsgBox "The chart Events are working"

End Sub

Nuestro trabajo aquí está hecho. Puede crear tantos eventos como desee a partir de los eventos disponibles para el tipo de gráfico aquí. Pero los eventos no funcionarán todavía porque es solo una clase. Necesitamos crear el objeto de esta clase en un sub en cualquier módulo normal o el módulo de objeto. Entonces ejecuta ese sub.

Después de eso, nuestro evento comenzará a funcionar.

image

Paso 2: Cree el objeto de clase de gráfico en el módulo.

  • Insertar un módulo normal.

  • Declare una variable de la clase que creó antes.

Dim mychart As ChartClass
  • Crea un sub e inicializa la variable con el objeto de la clase ChartClass.

Sub activateChartEvent()

Set mychart = New ChartClass

End Sub

image

Ejecute este sub usando F5. Como ejecutará este código, los eventos del gráfico estarán activos para el primer gráfico en la hoja actualmente activa, ya que usamos esta línea para la inicialización del gráfico eventSet CEvents = ActiveSheet.ChartObjects (1) .Chart. * Y ya está. Ahora, si hace clic en el primer gráfico de la hoja actualmente activa, se mostrará el mensaje de que los eventos del gráfico están funcionando.

Activación y desactivación de eventos de la aplicación VBA Una vez que ejecute la macro en el módulo normal, se activará siempre hasta que cierre el libro de trabajo que contiene los eventos. Pero es posible que desee encenderlos y apagarlos a su gusto. Hay dos maneras de hacer esto.

Anule el objeto de evento Establezca EnableEvents en False

1. Anulando el objeto de evento

En una subrutina separada, establezca el objeto de evento en Nothing

Private Sub StopEvents()

Set Mychart= Nothing

End Sub

Una vez que ejecute este código, los eventos dejarán de funcionar. Puede ponerlo en un botón en la hoja de trabajo para detener los eventos. Ahora tendrá dos botones para iniciar y detener estos eventos específicos. Simplemente detendrá los eventos creados por el objeto AppE.

2. Establezca EnableEvents en False

El segundo método es desactivar los eventos. Para que todos los eventos no se puedan capturar, establecemos la propiedad EnableEvents de la clase Application en False.

Private Sub StopEvents()

Application.EnableEvents= False

End Sub

El código anterior deshabilitará todos los eventos. Incluso los eventos de Excel predeterminados. No funcionarán hasta que los vuelva a iniciar. Incluso si ejecuta la subrutina StartEvents () (arriba), el evento no funcionará. Para que todos los eventos funcionen nuevamente, deberá establecer la propiedad EnableEvents nuevamente en True.

Entonces, si desea que sus eventos funcionen cada vez que inicie los eventos, agregue esta línea de código en el sub.

Private Sub StartEvents()

Application.EnableEvents = True

Set mychart = New ChartClass

End Sub

image

Así que sí, chicos, así es como pueden usar el evento de gráfico incrustado en Excel.

Déjeme saber si esto fue lo suficientemente explicativo y lo ayudó a comprender los eventos de nivel de aplicación en Excel VBA. Escriba sus pensamientos en la sección de comentarios a continuación. Si tiene algo que agregar a esto, anótelo también. Puede hacer sus consultas relacionadas con este artículo o cualquier otro tema relacionado con Excel VBA en la sección de comentarios a continuación.

Descarga el archivo de trabajo a continuación:

image 48

Artículos relacionados:

link: / events-in-vba-the-events-in-excel-vba [Los eventos en Excel VBA] | * Hay siete tipos de eventos en Excel. Cada evento tiene un alcance diferente. El evento de aplicación se ocupa a nivel de libro de trabajo. Libro de trabajo a nivel de hojas. Evento de hoja de trabajo a nivel de rango.

link: / events-in-vba-the-worksheet-events-in-excel-vba [Los eventos de la hoja de trabajo en Excel VBA] * | El evento de la hoja de trabajo es realmente útil cuando desea que sus macros se ejecuten cuando ocurre un evento específico en la sábana.

link: / events-in-vba-workbook-events-using-vba-in-microsoft-excel [Workbook events using VBA in Microsoft Excel] | Los eventos del libro funcionan en todo el libro. Dado que todas las hojas son parte del libro de trabajo, estos eventos también funcionan en ellas.

link: / events-in-vba-prevent-that-an-automacroeventmacro-execute-using-vba-in-microsoft-excel [Evitar que un automacro / eventmacro se ejecute usando VBA en Microsoft Excel] * | Para evitar la ejecución de la macro auto_open, use la tecla Mayús.

link: / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [Eventos de objeto de gráfico usando VBA en Microsoft Excel] * | Los gráficos son objetos complejos y hay varios componentes que se les adjuntan. Para hacer los eventos del gráfico usamos el módulo Clase.

Artículos populares:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-incrementa-your-productividad [50 accesos directos de Excel para aumentar su productividad] | Acelera tu tarea. Estos 50 atajos harán que su trabajo sea aún más rápido en Excel.

link: / formulas-and-functions-Introduction-of-vlookup-function [La función VLOOKUP en Excel] | Esta es una de las funciones más utilizadas y populares de Excel que se utiliza para buscar valores de diferentes rangos y hojas.

enlace: / tips-countif-in-microsoft-excel [COUNTIF en Excel 2016] | Cuente valores con condiciones usando esta asombrosa función. No necesita filtrar sus datos para contar un valor específico.

La función Countif es esencial para preparar su tablero.

link: / excel-formula-and-function-excel-sumif-function [Cómo utilizar la función SUMIF en Excel] | Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.