Hacer que los cuadros de diálogo modales aparezcan delante de los libros de trabajo (Microsoft Excel)
Don tiende a trabajar en dos monitores y tiene varios libros abiertos en la misma instancia de Excel. También maximiza sus ventanas. (Se describe a sí mismo como un tipo de persona que «ve todo de una vez»). Recientemente, cuando Don ha hecho algo que abre un cuadro de diálogo modal, el cuadro se abre detrás del libro de trabajo, lo que le impide ver el cuadro de diálogo o interactuar con eso. Se pregunta si hay alguna manera de hacer que los cuadros de diálogo modales aparezcan delante del libro de trabajo.
Antes de responder, conviene señalar que los cuadros de diálogo pueden ser de dos tipos: modales y no modales. Un cuadro de diálogo no modal es uno que es prácticamente independiente del programa al que pertenece. Un buen ejemplo de un cuadro de diálogo de este tipo es el cuadro de diálogo Buscar y reemplazar. Por otro lado, un cuadro de diálogo modal (con los que Don está teniendo problemas)
debe responderse o cerrarse antes de poder continuar trabajando con el programa al que pertenece el cuadro de diálogo.
No está claro si el problema de Don es con los cuadros de diálogo modales generados por el propio Excel o si son cuadros de diálogo generados por macros sobre los que Don tiene control. Si es lo primero, es muy poco lo que se puede hacer; la ubicación en capas del cuadro de diálogo está controlada completamente por el programa (y los programadores que lo crearon). En otras palabras, se necesitaría un cambio de código para que el cuadro de diálogo apareciera en capas encima del libro de trabajo en lugar de debajo de él.
Comprenda que existe un escenario en el que el problema puede no deberse a un problema de programación de Excel. Podría ser que tenga una aplicación de terceros ejecutándose en el sistema que afecte la superposición de los cuadros de diálogo y sus ventanas principales. Los culpables típicos en este escenario son las utilidades residentes en la memoria que se obligan a aparecer siempre encima de cualquier otra cosa que esté en la pantalla. La única forma de ver si este es el culpable es deshabilitar la carga de dichas utilidades y, dentro de Excel, mostrar un cuadro de diálogo modal. Si el comportamiento vuelve a la normalidad, entonces conoce la fuente del problema.
Sin embargo, si es el caso que el cuadro de diálogo es generado por una macro que Don desarrolló, la solución es ajustar el código que genera el cuadro de diálogo modal. (En las macros de Excel, estos tipos de cuadros de diálogo se implementan normalmente a través de formularios de usuario).
El problema con la ubicación del formulario de usuario en múltiples escenarios de pantalla se soluciona mediante la ubicación manual del formulario de usuario dentro de su código de inicio. Por ejemplo, puedes usar alguna variación en esto:
Load UserForm1 UserForm1.StartUpPosition = 0 UserForm1.Top = Application.Top + 25 UserForm1.Left = Application.Left + 25 UserForm1.Show
Es posible que deba experimentar con la ubicación, pero es necesario establecer la propiedad StartUpPosition en 0 para que VBA sepa que desea ubicar manualmente el formulario de usuario.
_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 (13349) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.