Un atajo para dos macros (Microsoft Excel)
William tiene dos libros de trabajo, cada uno con macros. Aunque las macros son diferentes, se invocan utilizando el mismo método abreviado de teclado. Cuando solo uno de los libros de trabajo está abierto, el acceso directo funciona muy bien. Cuando ambos libros están abiertos al mismo tiempo, William nunca sabe exactamente qué se ejecutará. Se pregunta si hay una forma de que Excel trate los atajos de forma independiente de modo que si ambos libros están abiertos, los atajos de teclado funcionarán armoniosamente.
La respuesta corta es que no hay forma de que esto suceda sin realizar algunos cambios en las macros. Las teclas de método abreviado son «globales»
a la instancia de la aplicación que se está ejecutando (en este caso, Excel). A medida que se abren los libros de trabajo, sus accesos directos se agregan a una tabla interna que funciona como un índice de todos los accesos directos y la macro que están designados para ejecutar.
Este índice parece estar ordenado alfabéticamente, por nombre de libro. Cuando usa una tecla de método abreviado, Excel mira el índice y elige el primer método abreviado coincidente en el índice. Además, si tiene un atajo que usa uno de los atajos integrados, la macro creada siempre se ejecutará antes que la integrada. Si las macros tienen el mismo nombre, se ejecuta la primera que se abre.
Dado que la tabla de índice mantenida por Excel se crea por instancia de aplicación, puede evitar el conflicto asegurándose de abrir cada libro en su propia instancia de Excel. No utilice el cuadro de diálogo Abrir para cargar el segundo libro; en su lugar, haga doble clic en el icono del libro de trabajo en Windows.
Si se cansa de recordar abrir los libros de trabajo de esta manera, la única otra opción es comenzar a realizar cambios en las macros. El cambio fácil sería modificar las teclas de método abreviado para que no sean las mismas. Puede mantener las mismas teclas de método abreviado agregando algún código al comienzo de cada macro. Haga que cada macro verifique el nombre del libro activo. Si el nombre coincide con el nombre esperado para esa macro, entonces el código puede continuar ejecutándose. Si no coincide, entonces el código puede activar el otro libro de trabajo y ejecutar directamente la macro en ese.
_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 (2872) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.