Eu tive um problema semelhante. Eu tenho botão em uma pasta de trabalho. Se o botão for clicado, quero que o Excel abra a caixa de diálogo Localizar com a opção "pesquisar em todas as pastas de trabalho" já selecionada, em vez do padrão "dentro da planilha", não importa o quê.
Além disso, eu queria que o botão funcionasse para que as opções fossem ocultas ou mostradas e se alguém fizesse alterações manualmente. Isso é complicado porque o Excel por padrão não mostra as opções no início, mas lembra e mostra-as novamente na próxima vez que alguém as exibiu antes.
Para garantir que os toques de tecla funcionem, precisamos de uma série de toques de tecla que definam a configuração, independentemente do estado inicial. Levou um pouco de ajustes, mas eu encontrei um que funciona.
Aqui está o meu código para a versão em inglês do Excel; para outros idiomas, você precisa alterar as chaves de acordo.
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
Você pode experimentar manualmente:
Pressione CTRL + F para o diálogo de localização
Pressione TAB 15 vezes para acessar as opções "Opções" ou "Pesquisar em".
Pressione espaço e
1) As opções são exibidas ou
2) o dropdown é ativado e nada acontece
Pressione Alt + T duas vezes para redefinir o cursor para a caixa de entrada de localização
Pressione a tecla TAB duas vezes para acessar a lista suspensa de pesquisa, não importando o motivo (porque as etapas anteriores garantem que as opções sejam realmente exibidas!)
Pressione a seta para baixo duas vezes para selecionar "Workbook" e ENTER para selecionar
Pressione ALT + T duas vezes para redefinir o cursor para a caixa de entrada de localização novamente.
Espero que isso ajude alguém que tenha um problema semelhante.
Muitos Googling apenas me disseram que não é possível pré-selecionar "pesquisar em todas as pastas de trabalho" com o VBA, mas desta forma funciona!
Para que funcione com idiomas diferentes, você precisa verificar o idioma e usar CASE para alternar para a rotina adequada com os atalhos adequados.