A lo largo de sus prácticas de VBA, tendrá la necesidad de ejecutar macros cuando cambie un cierto rango o celda. En ese caso, para ejecutar macros cuando se realiza un cambio en un rango objetivo, usamos el evento de cambio.

`link: / excel-macros-and-vba-events-in-vb [Eventos en VBA] nos permite ejecutar las macros cuando ocurre un evento determinado.

Evento de cambio de rango de VBA de sintaxis

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("your_range")) Is Nothing Then

call your_macro

End If

End Sub

El evento no funciona en módulos. Debe escribirlos en objetos (hoja de trabajo, gráficos, libro de trabajo).

Lat tiene un ejemplo para aprender a ejecutar una macro cuando se realiza un cambio en un rango específico.

Ejemplo: ejecutar una macro de VBA cuando se realiza un cambio en el rango A2: A100 Primero, elegimos la hoja en la que ocurrirá el evento. Haga doble clic en esa hoja en el editor de VBA y copie el código a continuación o el código genérico de arriba y realice los cambios según sus requisitos.

image

En este ejemplo, quiero ejecutar un código macro / VBA cuando se realiza un cambio en el rango A2: A100 en la hoja 2. Para hacerlo, hago doble clic en la hoja2 en el explorador de proyectos. Abre la página de codificación para esa hoja. Puede hacer clic derecho en la hoja y hacer clic en el código de vista para hacer lo mismo.

Necesito usar el evento de cambio. Para eso, usamos la subrutina predeterminadaWorksheet_Change (ByVal Target As Range). Se activa cuando se realiza un cambio específico. Entonces nuestro código es este:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A2:A100")) Is Nothing Then

Call TestEvent

End If

End Sub

Cuando realice cambios en el rango A2: A100 en Sheet2, se llamará a la subrutina TestEvent, como puede ver en el gif anterior.

TestEvent es la subrutina pública en module2. Simplemente muestra un mensaje de que el evento está funcionando.

Sub TestEvent()

MsgBox "Event is working!"

End Sub

¿Cómo funciona?

Hemos puesto una condición:

Si no se interseca (objetivo, rango («A2: A100»)) no es nada, entonces HereIntersect (objetivo, rango («A2: A100»)) es nada devuelve verdadero si no se realizan cambios en el rango A2: A100. Ponemos un operador Not antes de esta declaración que invierte la salida dada por «Intersect (Target, Range (» A2: A100 «))». Por lo tanto, si no se realiza ningún cambio en el rango A2: A100, la expresión devuelve Falls y subTestEvent no recibe la llamada. Si realiza un cambio en cualquier celda del rango A2: A100, la expresión devolverá True y se producirá el evento. Y eso es lo que está pasando aquí.

Nota: Puede poner cualquier subrutina en este bloque. Puede ser de cualquier módulo. Pero debería ser una subrutina pública. Puede establecer el rango en cualquier medida. Toda la hoja es el límite.

Así que sí, chicos, así es como pueden llamar a una subrutina o ejecutar un código macro / VBA cuando se realiza un cambio en un rango específico. Fue un ejemplo de evento básico. Este evento se activará solo cuando el cambio se base en texto. Por basado en texto me refiero a que si escribe algo en las celdas o elimina, el evento se activará. Si cambia el formato de las celdas, no se activará. Hay otros métodos para hacer eso.

Espero que haya sido de ayuda. Si tiene alguna consulta relacionada con este tema de VBA o cualquier otro tema relacionado con Excel, hágamelo saber la sección de comentarios a continuación. Y mira nuestras otras publicaciones relacionadas y populares que se mencionan a continuación.

Artículos relacionados:

link: / events-in-vba-simple-vba-code-to-highlight-current-row-and-column-using [El código VBA más simple para resaltar la fila y columna actual usando] * | Use este pequeño fragmento de VBA para resalte la fila y columna actual de la hoja.

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

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 lo harán trabajar aún más rápido en Excel.

enlace: / fórmulas-y-funciones-introducción-de-función-vlookup [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. 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.