LOCALIZAR AVANÇADO

Download do Arquivo

Você quer localizar um valor em uma pasta de trabalho do Excel, porém o CTRL+L só traz os resultados da planilha em que você está. Ou seja se você quisesse um resultado diferente teria que ir de aba em aba usando CTR+L, o que seria uma perda de tempo.

No post de hoje vou ensinar como criar um localizar avançado no Excel que procura em todas as planilhas e não só na atual, se gostarem em um outro post eu posso fazer um para substituir os valores localizados nas planilhas.


//
//

//
//

Criando o formulário

  • Com o Excel aberto, clique na guia Desenvolvedor e no botão Visual Basic.
  • Clique no projeto VBAProject(PERSONAL.XLSB).
  • Selecione o menu Inserir->User Form
Projeto
Projeto
  • Clique no formulário criado e selecione na caixa de ferramentas os objetos:
  1. Frame = altere a propriedade name para frDados e a Caption para Pesquisar
  2. Lable = altere a propriedade Caption para Pesquisar
  3. TextBox = altere a propriedade name para txtPesquisa
  4. CommandButton = altere a propriedade Caption para Pesquisar
  5. Frame2 = altere a propriedade Caption para Resultados
  6. ListBox = altere a propriedade Name para listResultado, a propriedade ForeColor para &H00FF0000& e fonte marcar como sublinhado.
Formulário
Formulário

Programação

Clique duas vezes sobre o botão Pesquisar e insira o código abaixo:

Private Sub CommandButton1_Click() Dim currentFind As Excel.Range Dim firstFind As Excel.Range Dim lQtdePlan As Integer Dim lPlanAtual As Integer Dim lPlanFim As Boolean 'Conta a quantidade de planilhas lQtdePlan = Worksheets.Count lPlanAtual = 1 lPlanFim = False 'Limpa os resultados listResultado.Clear 'Verifica se há texto para pesquisar If txtPesquisa.Text <> "" Then 'Loop pelas planilhas While lPlanAtual <= lQtdePlan 'Define a Range de Pesquisa Set currentFind = Worksheets(lPlanAtual).Range("A1:XFD1048576").Find(txtPesquisa.Text, , _ Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, _ Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, False) Set firstFind = Nothing 'Realiza o loop das pesquisas While Not currentFind Is Nothing And lPlanFim = False If firstFind Is Nothing Then Set firstFind = currentFind ElseIf currentFind.Address = firstFind.Address Then lPlanFim = True End If If lPlanFim = False Then Set currentFind = Worksheets(lPlanAtual).Range("A1:XFD1048576").FindNext(currentFind) listResultado.AddItem (Worksheets(lPlanAtual).Name & "!" & currentFind.Address) End If Wend 'Passa para a próxima planilha lPlanAtual = lPlanAtual + 1 lPlanFim = False Wend End If Sair: Exit Sub End Sub

Clique duas vezes no ListBox e insira o código abaixo:

Private Sub listResultado_Click() Dim lRng As Range Dim lEndereco() As String 'Separa a planilha da célula lEndereco = Split(listResultado, "!") 'Abre a planilha Worksheets(lEndereco(0)).Activate 'Define o endereço Set lRng = Range(lEndereco(1)) 'Ativa o endereço lRng.Activate End Sub 

Clique na guia Inserir Módulo, e no módulo criado insira o código abaixo:

Sub gsLocalizarAvancado() frmPesquisaAvancada.Show End Sub

Salve e feche o ambiente de desenvolvimento, voltando desta forma para a pasta de trabalho.

Criando o Atalho

  • Clique na guia Desenvolvedor e no botão Macros, selecione a função PERSONAL.XLSB!gsLocalizarAvancado.
  • Clique no botão Opções e na caixa tecla de atalho digite Shift+l, ou seja L maiúsculo.
Atalho
Atalho

Concluindo

Como resultado temos que uma tela que será chamada quando você digitar CTRL+SHIFT+L e que irá realizar uma busca por todas as planilhas da pasta de trabalho aberta já com link para ela, ou seja ao clicar nos resultados você será direcionado diretamente para ele, assim como o localizar nativo do Excel.

Teste
Teste – Clique para ampliar

Então é isso amigos, agradeço a leitura do artigo, e se tiverem dúvidas, sugestões ou comentários sobre o blog fiquem a vontade para fazer.

Download do Arquivo

Marcos Rieper

//
//

//
//


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel