in

Cómo ejecutar un procedimiento VBA desde un control de validación de datos en Microsoft Excel

Compile gráficos circulares en excel en ilustración isométrica

Compile gráficos circulares en excel en ilustración isométrica
Imagen: hasan/Adobe Stock

Hay muchas formas de ejecutar un procedimiento VBA en Microsoft Excel. Puede agregar botones de macro a nivel de hoja o agregarlos a la cinta en un grupo personalizado. Cuando tiene varios procedimientos, es posible que desee ofrecer esas opciones en un control de validación de datos. Si lo hace, le permite elegir tareas en el nivel de la hoja. Puede usar esta técnica para ejecutar cualquier cantidad de tareas, desde una simple tarea de guardar hasta algo más complejo, como copiar rangos dinámicos o ejecutar filtros avanzados.

En este tutorial, le mostraré cómo insertar un control de validación de datos que ejecuta un procedimiento de evento VBA. Si no está familiarizado con VBA, no se preocupe. Proporcionaré instrucciones completas, pero debe tener conocimientos básicos de Excel. A lo largo de este tutorial, usaré el término «procedimiento» en lugar de «macro». Técnicamente, las macros y los procedimientos no son lo mismo, pero verá que los términos se usan indistintamente. Incluso Microsoft lo hace.

Estoy usando microsoft 365 en un sistema Windows 10 de 64 bits, pero puede usar versiones anteriores de Excel. Excel para la web no es compatible con los procedimientos de VBA.

VER: Cómo iniciar un sistema de contabilidad en Excel (Academia TechRepublic)

Cómo incrustar un control de validación de datos en Excel

Comenzaremos creando un control de validación de datos y llenándolo con el nombre de algunas tareas. Al aplicar esto a su propio trabajo, puede comenzar creando primero el procedimiento de evento. No importa qué ruta tomes.

Agregaremos dos elementos a la lista desplegable, pero puede agregar muchos más. Ahora, insertemos el control de validación de datos. Usando la hoja de demostración simple que se muestra en Figura A, haga clic en B2. Siéntase libre de usar uno de sus propios archivos si lo desea o elija otra celda. Deberá actualizar el código VBA real en consecuencia. Agregué formato para que los usuarios puedan encontrar el control rápidamente.

Figura A

primer plano de una hoja de cálculo de Excel con la celda B2 rellena en naranja
Agregaremos un control de validación de datos a esta hoja.

Haga clic en la pestaña Datos y, a continuación, haga clic en Validación de datos en el grupo Herramientas de datos. En el cuadro de diálogo resultante, elija Lista en el menú desplegable Permitir. En el control de fuente, ingrese Di hola, di adiós (Figura B). Haga clic en Aceptar.

Figura B

el menú de validación de datos en Excel
Defina el control de validación de datos.

Como puedes ver en Figura C, el menú desplegable contiene las «tareas» que ingresó. No hay espacio antes o después de la coma que separa los dos elementos. El siguiente paso es agregar el procedimiento de evento de VBA, pero antes de hacerlo, guarde el archivo como un archivo habilitado para macros, si está usando el formato .xlsx.

Figura C

Un menú desplegable en Excel con dos opciones de macro que dicen "Di hola" y "Decir adiós"
El menú desplegable contiene el nombre de dos tareas.

Cómo agregar los procedimientos de VBA en Excel

Elegir cualquiera de los elementos en el menú desplegable no hace nada en este momento. Necesitamos agregar el procedimiento de evento que se ejecuta cuando selecciona uno de los elementos en el menú desplegable. Primero, seleccione la opción Editor en el grupo Visual Basic en la pestaña Desarrollador para abrir el Editor de Visual Basic (VBE). En el Explorador de proyectos a la izquierda, haga doble clic en la Hoja 1. Estamos usando un módulo de nivel de hoja porque el control está en la hoja 1. No tendrá acceso a él desde otras hojas. Ingresar Listado A como se muestra en Figura D.

Listado A

Hoja de trabajo secundaria privada_Change (ByVal Target As Range)

‘Habilitar el control de validación de datos en Sheet1!B2 para ejecutar el procedimiento.

Si Target.Address = “$B$2” Entonces

Seleccionar caso Target.Value

Caso “Di hola”

Cuadro de mensaje «Hola»

Caso “Di Adiós”

MsgBox «Adiós»

caso más

MsgBox «Algo salió mal»

Finalizar Seleccionar

Terminara si

Finalizar sub

Figura D

Interfaz de línea de comandos de la hoja de trabajo en Excel
Introduzca el evento Worksheet_Change.

Puede ingresar el código manualmente o importar el archivo .cls descargable. Además, el procedimiento se encuentra en el archivo .xlsm descargable. Si ingresa el código manualmente, no lo pegue desde esta página web. En su lugar, copie el código en un editor de texto y luego pegue ese código en el módulo Sheet1. Al hacerlo, se eliminarán los caracteres web fantasma que, de lo contrario, podrían causar errores.

VBA activa este procedimiento de evento cada vez que realiza un cambio en la hoja. Eso hace que sea un poco arriesgado usarlo en una hoja de trabajo muy ocupada; puede ralentizar un poco las cosas. En este caso, no notarás nada.

Cuando se activa, el procedimiento de evento comprueba la celda actual (Objetivo). Si no es B2, no desea continuar y la instrucción IF detiene el flujo.

La declaración SELECT CASE le permite verificar un valor para diferentes condiciones. En este caso, comprueba el valor de Target, que es B2. Si el valor es igual al texto «Di hola», un cuadro de mensaje muestra la palabra «Hola». Si el valor de Target es «Di adiós», un cuadro de mensaje muestra la palabra «Adiós».

La cláusula CASE ELSE está ahí en caso de que suceda algo más. Muestra «Algo salió mal». Al aplicar esto a su propio trabajo, querrá agregar texto más significativo o incluso ejecutar una rutina de manejo de errores. Por cierto, este procedimiento simple no tiene manejo de errores, por lo que querrá pensar un poco al aplicar esto a su propio trabajo.

Ahora que sabe qué esperar, intentémoslo.

Cómo ejecutar el procedimiento de evento usando el control de validación de datos en Excel

Usar el control de validación de datos para ejecutar el procedimiento de evento es la parte fácil. Simplemente haga clic en el menú desplegable y elija uno de los elementos. Hágalo ahora y elija el primer elemento Decir hola. Debería ver el cuadro de mensaje que se muestra en Figura E.

Figura E

Una macro en Excel que dice "Di hola"
El procedimiento de evento muestra «Di hola».

Observe que la barra de fórmulas muestra el texto del elemento seleccionado. Esto se debe a que el control de validación ingresa el artículo en B2 y es por eso que el código puede verificar el artículo seleccionado. Cierra el cuadro de mensaje e inténtalo de nuevo. Esta vez elija Decir adiós para mostrar el mensaje que se muestra en Figura F. Observe que el texto en la barra de fórmulas es «Di adiós».

Figura F

macro de Excel que dice "Decir adiós"
El procedimiento de evento muestra «Di adiós», esta vez.

Intentémoslo una vez más. Esta vez, borre el contenido. Si lo hace, activará el procedimiento de evento, que terminará evaluando la cláusula CASE ELSE, que muestra el mensaje que se muestra en Figura G.

Figura G

una ventana emergente en Excel que dice "Algo salió mal."
El código incluso te permite saber cuándo algo salió mal.

Si el procedimiento no se ejecuta, verifique su Configuración de confianza para asegurarse de que los procedimientos estén habilitados de la siguiente manera:

  1. Haga clic en la pestaña Archivo.
  2. Haga clic en Opciones en el panel izquierdo.
  3. Haga clic en Centro de confianza y, a continuación, haga clic en Configuración del Centro de confianza.
  4. En el panel izquierdo, haga clic en Configuración de macros.
  5. Haga clic en Deshabilitar macros de VBA con opciones de notificación si es necesario. Esta configuración bloquea los procedimientos pero los habilita caso por caso.

El código es simple a propósito, pero cuando aplica la técnica a su propio trabajo, lo más probable es que el código sea más complejo. El enfoque es la configuración de validación de datos, que desencadena el procedimiento de evento. Esa es la parte de esta técnica que realmente necesitas. Es simple y sin embargo no muy conocido.

Fuente

Written by TecTop

Cómo desactivar la detección de bloqueos en el iPhone y Apple Watch

Cómo desactivar la detección de bloqueos en el iPhone y Apple Watch

Mis pensamientos: las especificaciones rumoreadas de Playstation 4/orbis

Las exclusivas de Playstation no llegarán a PC hasta al menos un año después del lanzamiento