¿Qué es un evento en VBA?

Los eventos en Excel son desencadenantes de una acción, como modificar el valor de un celda. Cuando sucede esto, se ejecuta un procedimiento asociado al código en nuestro VBA.

¿Qué conceptos se debe tener para hacer un evento?
1. Declarar eventos: Se debe de declarar el evento dentro de las estructuras, módulos e interfaces con la palabra clave Event.
2. Generación de eventos: Un evento es un mensaje importante.  La difusión del mensaje se denomina evento. Esto se genera con la instrucción RaiseEvent
3. Remitentes de eventos (Origen de evento): Se le dice remitente de eventos a cualquier objeto que es capaz de generar un evento.
4. Controladores de eventos: Es el procedimiento que se lleva acabo cuando se produce un evento correspondiente. Se puede usar una subrutina pero no una función ya que esta ultima no devolverá ningún valor al origen del evento.

Ejemplos
• Detectar si es día lunes al abrir un libro en concreto 
Escogemos el libro ThisWorkbook ya que es el que desencadena la acción.
Nos aparecerá por defecto el evento ´abrir´. Lo que se programe dentro del procedimiento se desencadenará en un momento en concreto.

Private Sub Workbook_Open ()

If Weekday(now)= vbMonday then
Msgbox “Debes hacer copia de seguridad”
End if

End Sub

• Maximizar la ventana cada vez que se active un libro
Private Sub Workbook_Activate()

Activewindow.windowstate = xlMaximized

End Sub

• En el caso de que se desactive el libro
Primero que lo active y de ahí que nos diga que debemos trabajar obligatoriamente en este libro. “Me” hace referencia a “Workbook”

Private Sub Workbook_Deactivate()

Me.Activate
MsgBox “Debes trabajar en este libro”

End Sub

• Detectar si se ha hecho algún cambio en la Hoja1
Eventos con VBA 1, ¿Qué es un evento en VBA?

Código en VBA:

Private Sub Worksheet_Change (ByVal Target as Range)
Msgbox “Estás cambiando información”
End Sub



Eventos con VBA 3
Figura 3.  Desarrollo del código.

• Para detectar si se ha hecho un cambio en un rango específico
Código en VBA:

Private Sub Worksheet_SelectionChange(ByVal Target as Range)
Dim mirango as range
Set mirango=range(“A1:A21”)
If not Intersect(target, mirango) is nothing then
Msgbox “Has cambiado celdas en el rango”
End if
End Sub


Eventos con VBA 4,
Figura 4.  Código en VBA para un rango específico.

 
Eventos con VBA 5, ¿Qué es un evento en VBA?
Figura 5.  Desarrollo del código para un rango específico.

No hay comentarios:

Publicar un comentario

Popular Posts

Con la tecnología de Blogger.

Entrada destacada

La función CONTAR.SI.CONJUNTO en Excel

La  función CONTAR.SI.CONJUNTO en Excel  nos permite contar los elementos de un rango que cumplen con los criterios definidos. Esta función...

Categories

Advertisement

Main Ad

Tags

Popular Posts

Facebook

Entradas populares

Featured

Recent Posts

Theme Support

Need our help to upload or customize this blogger template? Contact me with details about the theme customization you need.