Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Macro para Pesquisar em Guias Determinadas [RESOLVIDO]

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
clareandoideias
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Seg Mai 28, 2018 9:53 pm

Macro para Pesquisar em Guias Determinadas [RESOLVIDO]

Mensagem por clareandoideias »

Boa noite pessoal!
Estou precisando muito da ajuda de vocês.
Atualmente estou tentando montar um código para pesquisar por um valor inserido em um textbox em guias determinadas e me direcionar à célula com valor encontrado.
Atualmente consegui o seguinte código:

Código: Selecionar todos

Private Sub CommandButton1_Click()
  Pesquisa = Plan1.TextBox1.Value
  If Pesquisa = "" Then Exit Sub
  Set plan = Sheets("Nome_da_Planilha") 'DEFINE NOME DA PLANILHA
    Set x = plan.Cells.Find(what:=Pesquisa)
    If Not x Is Nothing Then
      firstAddress = x.Address
      Do
        plan.Select
        x.Select
        Set x = plan.Cells.FindNext(x)
      Loop While Not x Is Nothing And x.Address <> firstAddress
    Else
      MsgBox "Texto não encontrado na planilha " & plan.Name
    End If
End Sub
O problema é que só estou conseguindo fazer a pesquisa em uma das guias ou no worksheet inteiro, não consegui definir as guias onde vai ser feita a pesquisa.

Exemplo:
Tenho as guias A, B, C e D
Quero que a pesquisa seja feita apenas nas guias A e C.
Se o valor do textbox estiver na guia A ou C, abrir a guia e selecionar a célula com o valor respectivo.

No código inserido acima no tópico está tudo acontecendo perfeitamente com exceção de conseguir rodar em mais de uma guia.
Conto com vocês! Obrigado desde já.
Editado pela última vez por clareandoideias em Sex Jun 01, 2018 3:38 pm, em um total de 2 vezes.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Macro para Pesquisar em Guias Determinadas

Mensagem por srobles »

clareandoideias,
Adicione um novo módulo á pasta, copie e cole o que segue:

Código: Selecionar todos

Public planilhaRetorno As String
Public linhaRetorno, colunaRetorno As Long
Function pesquisaValor(ByVal TermoPesquisado As String)
    Dim vBusca
    Set vBusca = Nothing
    Application.ScreenUpdating = False
    With ThisWorkbook.Sheets("A")
        .Activate
        With .Range("A:AA")
            Set vBusca = .Find(TermoPesquisado, LookIn:=xlValues, LookAt:=xlWhole)
                If Not vBusca Is Nothing Then
                    linhaRetorno = vBusca.Row
                    colunaRetorno = vBusca.Column
                    planilhaRetorno = ActiveSheet.Name
                Else
                    With ThisWorkbook.Sheets("C")
                        .Activate
                        With .Range("A:AA")
                        Set vBusca = .Find(TermoPesquisado, LookIn:=xlValues, LookAt:=xlWhole)
                            If Not vBusca Is Nothing Then
                                linhaRetorno = vBusca.Row
                                colunaRetorno = vBusca.Column
                                planilhaRetorno = ActiveSheet.Name
                            Else
                                MsgBox "Termo " & TermoPesquisado & " não encontrado!", vbExclamation, "Erro"
                            End If
                        End With
                    End With
                End If
        End With
    End With
    With ThisWorkbook.Sheets(planilhaRetorno)
        .Cells(linhaRetorno, colunaRetorno).Select
    End With
    Application.ScreenUpdating = True
End Function
Para chamar a função, faça :

Código: Selecionar todos

   pesquisaValor nomeDoCampo/Range("A1").Value 'Adapte conforme necessidade
Espero ter ajudado.

Abs


clareandoideias
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Seg Mai 28, 2018 9:53 pm

Re: Macro para Pesquisar em Guias Determinadas

Mensagem por clareandoideias »

Boa noite Saulo! Obrigado pela resposta.
Estou tento dificuldades em chamar a função, pode me dar um apoio novamente amigo?
No meu caso o valor que desejo buscar está em um textbox na planilha A. Seria algo como: plan1.texbox1.value
Como faço para chamar a função e buscar pelo valor contido nesse textbox?


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Macro para Pesquisar em Guias Determinadas

Mensagem por srobles »

clareandoideias,

Veja se o modelo em anexo atende sua necessidade.

Espero ter ajudado.

Abs
Anexos
modelo.zip
(25.31 KiB) Baixado 199 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Olnei Barreto
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Ter Mai 29, 2018 9:59 pm

Re: Macro para Pesquisar em Guias Determinadas

Mensagem por Olnei Barreto »

Olá, eu preciso criar uma macro que pegue o nome que está em uma célula na
planilha 2 e vá buscar este nome na planilha 1, quando encontrar esse nome
na planilha 1 que ele apenas deixe a célula com o nome selecionada para que
eu possa editar. Exemplo:

Na célula A2 da planilha 2 tem digitado João Carlos, na coluna A da
planilha 1 tem uma lista de nomes e João Carlos está nesta lista, eu quero
clicar em um botão na planilha 2 que busque o nome que aparece na célula A2
da planilha 2 e deixe selecionado na planilha 1 a célula onde esse nome está para que eu
possa editar o nome quando eu quiser. Apenas deixar selecionada a célula onde o nome foi localizado.
Fico grato a quem puder ajudar.


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Macro para Pesquisar em Guias Determinadas

Mensagem por srobles »

Olnei,

Para isso, adicione um novo módulo á sua pasta de trabalho e experimente o que deixo abaixo :
No módulo :

Código: Selecionar todos

Public valorEncontrado As Boolean
Function pesquisaValor(ByVal TermoPesquisado As String)
    Dim vBusca
    Set vBusca = Nothing
    valorEncontrado = False
    Application.ScreenUpdating = False
    With ThisWorkbook.Sheets("Plan1")
        .Activate
        With .Range("A:B")
            Set vBusca = .Find(TermoPesquisado, LookIn:=xlValues, LookAt:=xlWhole)
                If Not vBusca Is Nothing Then
                    .Range(vBusca.Address).Select
                    valorEncontrado = True
                Else
                     MsgBox "Termo " & TermoPesquisado & " não encontrado!", vbExclamation, "Erro"
                End If
        End With
    End With
    Application.ScreenUpdating = True
End Function
Adicione um botão á planilha 2, e cole o que segue abaixo :

Código: Selecionar todos

Private Sub CommandButton1_Click()
   Dim vValor As String
   vValor = ThisWorkBook.Sheets("Plan2").Cells(2,1)
  
   If vValor <> "" Then
      pesquisaValor vValor

      If valorEncontrado = True Then
         ThisWorkBook.Sheets("Plan1").Activate
      Else
         ThisWorkBook.Sheets("Plan2").Activate
      End If
   Else
      Msgbox "Favor, informe o termo á ser pesquisado!",vbExclamation,"Erro"
   End If
End Sub
Espero ter ajudado.

Abs


Olnei Barreto
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Ter Mai 29, 2018 9:59 pm

Re: Macro para Pesquisar em Guias Determinadas

Mensagem por Olnei Barreto »

Grande Saulo, perfeito meu amigo, obrigado.


clareandoideias
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Seg Mai 28, 2018 9:53 pm

Re: Macro para Pesquisar em Guias Determinadas

Mensagem por clareandoideias »

srobles escreveu: Qua Mai 30, 2018 3:13 pm clareandoideias,

Veja se o modelo em anexo atende sua necessidade.

Espero ter ajudado.

Abs
Bom dia Saulo, PERFEITO! Funcionou perfeitamente.
Muito obrigado.
Apenas uma dúvida:
Se eu necessitar expandir a pesquisa para além das guias A e C (supondo que tenho 10 guias e queira fazer a pesquisa em 4 delas por exemplo. Não consegui alterar no comando 'else' :| ) como fica a alteração no código?


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Macro para Pesquisar em Guias Determinadas

Mensagem por srobles »

clareandoideias,

Conforme solicitação, fiz as alterações na função de pesquisa. Caso queira adicionar mais condicionais, basta seguir a lógica em cada bloco do código conforme comentários.

Espero ter ajudado.

Abs
Anexos
modelo.zip
(33.33 KiB) Baixado 214 vezes


clareandoideias
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Seg Mai 28, 2018 9:53 pm

Re: Macro para Pesquisar em Guias Determinadas

Mensagem por clareandoideias »

Boa tarde Saulo,
Muito obrigado mais uma vez, você me ajudou muito!
Tópico resolvido. Você é o cara!


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder