Eventos de gráficos integrados con VBA en Excel

Tabla de contenido:

Anonim

El uso de eventos de la hoja de gráficos (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 crear eventos de aplicaciones. Entonces, sin más demora, comencemos.

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

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

  • Inserta un módulo de clase. Nómbralo como quieras. Lo llamé ChartClass.
  • Defina una variable de evento de tipo Gráfico con la palabra clave WithEvents.
    Privado WithEvents CEvents como gráfico
  • 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 () Establecer 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 "Los eventos del gráfico están funcionando" 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 de cualquier módulo normal o módulo de objeto. Entonces ejecuta ese sub. Después de eso, nuestro evento comenzará a funcionar.

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

  • Inserte un módulo normal.
  • Declare una variable de la clase que creó antes.
    Atenuar mychart como ChartClass
  • Cree un sub e inicialice la variable con el objeto de la clase ChartClass.
    Sub activeChartEvent () Establecer mychart = New ChartClass End Sub

  • Ejecute este sub usando F5. Como ejecutará este código, los eventos de 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 conjunto de eventos de gráfico CEvents = ActiveSheet.ChartObjects (1) .Chart.

Y esta hecho. Ahora, si hace clic en el primer gráfico en la hoja actualmente activa, 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.

  • Anular el objeto de evento
  • Establezca EnableEvents en False

1. Anulación del objeto de evento

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

Private Sub StopEvents () Establecer 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 consiste en desactivar los eventos. Para que todos los eventos no se puedan capturar, establecemos la propiedad EnableEvents de la clase Application enFalso.

Private Sub StopEvents () Application.EnableEvents = False End Sub

El código anterior desactivará 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 vuelvan a funcionar, deberá volver a establecer la propiedad EnableEvents 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

Inicio de eventos de gráficos personalizados cada vez que se abre el libro de trabajo

Si está desarrollando una herramienta para el usuario final, es posible que desee que los eventos funcionen automáticamente. En ese caso, puede colocar el iniciador de eventos en el objeto Workbook con el evento Workbook_open (), en lugar de en un módulo normal. Esto hará que su objeto de evento se inicialice tan pronto como abra el libro de trabajo que contiene los eventos.

Así que sí, chicos, así es como pueden usar el evento de gráfico incrustado en Excel. Hágame 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.

Descargue el archivo de trabajo a continuación:

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.

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 hoja.

Eventos del libro de trabajo usando VBA en 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.

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 shift.

Graficar eventos de objetos 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.

Articulos populares:

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.

La función BUSCARV 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.

CONTAR.SI 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.

Cómo usar la función SUMIF en Excel | Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.