none
Procurada de nome. RRS feed

  • Pergunta

  • Caros amigos...saudações a todos!

     

    Gostaria de pedir a ajuda de vocês para criar uma sub rotina para VBA em Excel que faça uma busca de um nome em uma planilha chamada "funcionários".

    Obs: criei um userform com uma textbox e um botão, gostaria de quando eu digitasse o nome do funcionário e clicasse no botão o nome do funcionário fosse procurado na coluna A da linha 1 em diante e se encontrado aparesse uma caixa de mensagem (msgbox) dizendo que o funcionário foi encontrado.

    Na planilha o nome do funcionário está completo, ou seja, nome e sobrenome, gostaria que se eu digitasse somente o primeiro nome a busca encontrasse também. Não se preocupem nomes repetidos pois no meu caso não haverá.

     

    Agradeço a ajuda de vocês!!!

    terça-feira, 26 de fevereiro de 2008 12:54

Respostas

  • Olá Braz, não sei se essa é a melhor maneira, mas está funcionando do jeito que você pediu.

     

    TextBox1 = ""
    TextBox2 = ""
    TextBox3 = ""
    TextBox4 = ""
    TextBox5 = ""
    With Worksheets(1).Columns(1)
        Set c = .Find(TXT_PESQUISA, LookIn:=xlValues)
        If Not c Is Nothing Then
                c.Activate
                endereço = c.Address
                TextBox1 = c
               
                Set c = .FindNext(c)
                c.Activate
                If c.Address = endereço Then Exit Sub
                TextBox2 = c
               
                Set c = .FindNext(c)
                c.Activate
                If c.Address = endereço Then Exit Sub
                TextBox3 = c
               
                Set c = .FindNext(c)
                c.Activate
                If c.Address = endereço Then Exit Sub
                TextBox4 = c
                    
                Set c = .FindNext(c)
                c.Activate
                If c.Address = endereço Then Exit Sub
                TextBox5 = c
        End If
    End With

     

    Qualquer dúvida post denovo...

    Abraços...

    terça-feira, 26 de fevereiro de 2008 20:53

Todas as Respostas

  • Olá Braz, isto deve ajudar..

     

    Set x = Worksheets("funcionários").Columns("A").Find(what:=TXT_PESQUISA)
        If TXT_PESQUISA.Text = "" Then Exit Sub
        If Not x Is Nothing Then
            x.Select
            MsgBox "Funcionário encontrado na célula " & x.Address & Chr(10) & "Nome:" & x.Text
        Else
            MsgBox "Funcionário não encontrado"
        End If

     

    Basta nomear sua text_box por TXT_PESQUISA e colar o código no seu botão.

    Abraços...

    terça-feira, 26 de fevereiro de 2008 14:00
  • Caro amigo EvangelistaLion como vai?

     

    Meu amigo deu certinho a sub que você postol, ficou chique mesmo, mas eu dei uma bobeira na minha informação, pois o que eu disse de que não haveria problema de existir nomes repetidos, infelismente não é verdade, pois entraram nomes repetidos na planilha.

     

    Vou explicar melhor o que estou fazendo:

     

    Criei uma userform com uma textbox1 e um botão. Na textbox1 vou colocar somente o primeiro nome do funcionário e vou clicar no botão para que seja feita a busca. Quando for encontrado os nomes quero que apareça em mais 5 textbox que coloquei na userform, acho que não terei mais de 5 nomes iguais na planilha, assim espero rsrsrsrsrsrsr

     

    Então é isso meu amigo: uma userform com 6 textbox e um botão, na textbox1 eu coloco só o primeiro nome se encontrado por exemplo 3 nomes iguais os nomes aparecerão nas textbox2, textbox3 e textbox4.

     

    Lembrando que os nomes na planilha estão completos, ou seja, nome e sobrenome.

     

    Mais uma vez muito obrigado meu grande amigo!!!!!!

    terça-feira, 26 de fevereiro de 2008 14:17
  • Olá Braz, não sei se essa é a melhor maneira, mas está funcionando do jeito que você pediu.

     

    TextBox1 = ""
    TextBox2 = ""
    TextBox3 = ""
    TextBox4 = ""
    TextBox5 = ""
    With Worksheets(1).Columns(1)
        Set c = .Find(TXT_PESQUISA, LookIn:=xlValues)
        If Not c Is Nothing Then
                c.Activate
                endereço = c.Address
                TextBox1 = c
               
                Set c = .FindNext(c)
                c.Activate
                If c.Address = endereço Then Exit Sub
                TextBox2 = c
               
                Set c = .FindNext(c)
                c.Activate
                If c.Address = endereço Then Exit Sub
                TextBox3 = c
               
                Set c = .FindNext(c)
                c.Activate
                If c.Address = endereço Then Exit Sub
                TextBox4 = c
                    
                Set c = .FindNext(c)
                c.Activate
                If c.Address = endereço Then Exit Sub
                TextBox5 = c
        End If
    End With

     

    Qualquer dúvida post denovo...

    Abraços...

    terça-feira, 26 de fevereiro de 2008 20:53
  • E ai meu amigo Evangelista como você está meu amigo?

     

    Rapaz você acertou no alvo!!!! Ficou 10 a sub rotina, era disso mesmo que eu estava precisando.

     

    Como já disse em outros tópicos que postei, eu não manjo muito de VBA, tenho que aprender muito para chegar no patamar de vocês, mas trabalho com programas gráficos há mais de 15 anos, programas tais como Photoshop, Adobe Premiere, Particle Illusion, etc.. Se um dia você precisar de alguma coisa relacionada a esses programas pode contar comigo que estarei pronto a atender você e todos os amigos aqui do Fórum.

     

    Mais uma vez muito obrigado pela sua ajuda!!!

    quarta-feira, 27 de fevereiro de 2008 10:03
  •  

    Tudo na benção graças a Deus.

    Bom saber, essa parte eu não manjo muito...

    Fica na paz...

     

     

    quinta-feira, 28 de fevereiro de 2008 10:48