Hacer que VLOOKUP active una macro (Microsoft Excel)
Mike usa BUSCARV con regularidad en sus hojas de trabajo, pero se pregunta si hay alguna forma de hacer que la función ejecute una macro si no devuelve un valor.
Hay un par de formas de abordar este problema. Primero, puede usar una fórmula condicional para determinar si BUSCARV devolverá un valor o un error. Si devolverá un error, entonces puede hacer que la fórmula ejecute una función definida por el usuario (MyUDF), como se muestra aquí:
=IF(ISERROR(VLOOKUP(B2,CODES,1,FALSE)),MyUDF(), VLOOKUP(B2,CODES,1,FALSE))
Todo lo que necesita hacer es asegurarse de poner su código VLOOKUP real en la fórmula (dos veces) y reemplazar MyUDF con el nombre de la función definida por el usuario que desea activar.
Otro enfoque es configurar un controlador de eventos para el evento Calculate.
Esto puede ser bastante simple, como en el siguiente:
Private Sub Worksheet_Calculate() If IsError(Range("A1")) Then Call Macro1 End Sub
Este ejemplo supone que la fórmula BUSCARV está en la celda A1 y que desea ejecutar una macro llamada Macro1 si BUSCARV devuelve un error. Su macro podría hacer lo que necesite. Recuerde también que el controlador de eventos Calculate debe colocarse en el objeto ThisWorksheet.
También puede hacer que el controlador de eventos Calculate sea un poco más robusto, como se muestra aquí:
Private Sub Worksheet_Calculate() On Error GoTo myMac Worksheets(1).Select If Range("A1").Value Then Exit Sub End If myMac: Macro1 'macro to run if VLOOKUP fails End Sub
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (10107) se aplica a Microsoft Excel 2007 y 2010. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:
link: / excel-Making_VLOOKUP_Trigger_a_Macro [Cómo hacer que VLOOKUP active una macro]
.