Tuve un problema similar. Tengo un botón en un libro de trabajo. Si se hace clic en el botón, quiero que Excel abra el diálogo de búsqueda con la opción "buscar dentro de todos los libros de trabajo" ya seleccionada en lugar del predeterminado "dentro de la hoja", pase lo que pase.
Además, quería que el botón funcionara independientemente de las opciones ocultas o mostradas y si alguien realizaba cambios manualmente. Esto es complicado porque Excel por defecto no muestra las opciones al inicio, pero las recuerda y las vuelve a mostrar la próxima vez si alguien las mostró antes.
Para asegurarnos de que las pulsaciones de teclas funcionan, necesitamos una serie de pulsaciones de teclas que establezcan la configuración independientemente del estado inicial. Tomó un poco de retoques, pero encontré uno que funciona.
Aquí está mi código para la versión en inglés de Excel, para otros idiomas, debe cambiar las claves en consecuencia.
Sub Commanbutton_Click()
Cells(1, 1).Select
SendKeys "^f", True
SendKeys "{TAB 15}"
SendKeys " ", True
SendKeys "%t%t", True
SendKeys "{TAB 2}", True
SendKeys "{DOWN}{DOWN}{ENTER}", True
SendKeys "%t%t", True
End Sub
Puedes probarlo manualmente:
Presione CTRL + F para el diálogo de búsqueda Presione TAB 15 veces para que pueda aterrizar en "Opciones" o en el menú desplegable "Buscar dentro".
Presione la barra espaciadora y
1) Se muestran las opciones o 2) el menú desplegable se activa y no sucede nada
Presione Alt + T dos veces para restablecer el cursor al cuadro de entrada de búsqueda
Presione TAB dos veces, lo llevará a la búsqueda dentro del menú desplegable, sin importar qué (¡porque los pasos anteriores aseguran que las opciones se muestren de hecho!)
Presione la flecha ABAJO dos veces para seleccionar "Workbook" y ENTER para seleccionar
Presione ALT + T dos veces para restablecer el cursor al cuadro de búsqueda de búsqueda nuevamente.
Espero que esto ayude a alguien más que tiene un problema similar. Muchos de Google solo me dijeron que no es posible preseleccionar "buscar en todos los libros" con VBA, ¡pero de esta manera funciona!
Para que funcione con diferentes idiomas, deberá verificar el idioma y usar CASE para cambiar a la rutina adecuada con los atajos adecuados.