none
como fazer um TextBox1 pesquisa algo na planilha e jogar o resultando encontrado no TextBox2 RRS feed

  • Pergunta

  • Amigo estou tentando montar um UserForm com a seguinte opção de um CommandButton1 para ( Pesquisar ) e outro para ( Cancelar ) e um TextBox1 para colocar o codigo a ser pesquisado na planilha e jogar o resultando encontrado no TextBox2. mais eu ñ consigo fazer o resultado cair no TextBox2 so em MsgBox. gostaria da ajuda de alguem ai. o codigo é esse abaixo onde estou errado amigos.

     

    Private Sub CommandButton1_Click()
    Dim Planilha
    Dim firstAddress
    Dim Address
    Dim Pesquisa
    Dim Texto
    Dim k
    Dim ValorPesquisado
    Dim ValorColB, ValorColC, ValorColD

    Unload Me
    ValorPesquisado = TextBox1.Value
    If ValorPesquisado = "" Then Exit Sub
    For Each Planilha In ThisWorkbook.Sheets
    With Planilha.Cells
        Set Pesquisa = .Find(ValorPesquisado, LookIn:=xlValues)
        If Not Pesquisa Is Nothing Then
            firstAddress = Pesquisa.Address
            k = 0
            Do While firstAddress <> Address
                Address = Pesquisa.Address
                ValorColB = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=1)
                ValorColC = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=2)
                ValorColD = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=3)
                Texto = Texto & TextBox2 & TextBox2 & "Produto: " & ValorColB
               
                Exit For
                'Set c = .FindNext(c)
            Loop
        End If
    End With
    Next Planilha
    If IsEmpty(Texto) Then
    MsgBox "Não foi possível localizar a Produto." & vbLf & "Verifique o valor digitado e refaça a sua busca."
    Else
    MsgBox "Codigo : " & ValorPesquisado & vbLf & "foi localizada." & vbLf & Texto
    End If
    End Sub

    quinta-feira, 11 de novembro de 2010 12:42

Respostas

Todas as Respostas

  • No lugar de

    MsgBox "Codigo : " & ValorPesquisado & vbLf & "foi localizada." & vbLf & Texto

    Coloque

    Textbox2 = "Codigo : " & ValorPesquisado & vbLf & "foi localizada." & vbLf & Texto

    não tem erro

    --

    Talvez você tenho usado

    Textbo2.text = "Codigo : " & ValorPesquisado & vbLf & "foi localizada." & vbLf & Texto

    Ai da erro, porque dessa forma a textbox2 precisaria estar com o foco.

    --

     


    Rafael Gomes dos Santos Consultor de Informática MCAS - Microsoft Certified Application Specialist rafael.gomes.santos@gmail.com https://sites.google.com/site/pfntec/
    quinta-feira, 11 de novembro de 2010 17:22
  • Rafael ainda esta tando erro fiz como vc sugeriu ele faz a procurar mais na hora de joga a informação para o TextBox2 ele ñ joga.
    quinta-feira, 11 de novembro de 2010 17:33
  • que erro está aparecendo?
    Rafael Gomes dos Santos Consultor de Informática MCAS - Microsoft Certified Application Specialist rafael.gomes.santos@gmail.com https://sites.google.com/site/pfntec/
    sexta-feira, 12 de novembro de 2010 10:02
  • Vinicius,

     

    Tente remover a linha Unload Me. Este comando descarrega o formulário.


    Rafael Gomes dos Santos Consultor de Informática MCAS - Microsoft Certified Application Specialist rafael.gomes.santos@gmail.com https://sites.google.com/site/pfntec/
    sexta-feira, 12 de novembro de 2010 10:08
  • fiz como vc falou troquei coloquei como esta no seu exemplo .. so que ñ da nada nem procurar ele procura .. ele faz a pesquisa e na hora de mostra o resultado  ele ñ da nada ...

      esta assim

     

    Private Sub CommandButton1_Click()
    Dim Planilha
    Dim firstAddress
    Dim Address
    Dim Pesquisa
    Dim Texto
    Dim k
    Dim ValorPesquisado
    Dim ValorColB, ValorColC, ValorColD

    Unload Me
    ValorPesquisado = TextBox1.Value
    If ValorPesquisado = "" Then Exit Sub
    For Each Planilha In ThisWorkbook.Sheets
    With Planilha.Cells
        Set Pesquisa = .Find(ValorPesquisado, LookIn:=xlValues)
        If Not Pesquisa Is Nothing Then
            firstAddress = Pesquisa.Address
            k = 0
            Do While firstAddress <> Address
                Address = Pesquisa.Address
                ValorColB = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=1)
                ValorColC = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=2)
                ValorColD = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=3)
                Texto = Texto & TextBox2 & TextBox2 & "Produto: " & ValorColB
               
                Exit For
                'Set c = .FindNext(c)
            Loop
        End If
    End With
    Next Planilha
    If IsEmpty(Texto) Then
    MsgBox "Não foi possível localizar a Produto." & vbLf & "Verifique o valor digitado e refaça a sua busca."
    Else
    TextBox2 = "Codigo : " & ValorPesquisado & vbLf & "foi localizada." & vbLf & Texto

    End If
    End Sub

    sexta-feira, 12 de novembro de 2010 10:09
  • Verdade isso mesmo tirando a linha Unload Me... deu  certo agora so tenho que fazer ele  busca so as informaçoes  de um coluna so pq esta pegando de outras colunas a  mais..

     

     ficou assim ...

     

    Private Sub CommandButton1_Click()
    Dim Planilha
    Dim firstAddress
    Dim Address
    Dim Pesquisa
    Dim Texto
    Dim k
    Dim ValorPesquisado
    Dim ValorColB, ValorColC, ValorColD


    ValorPesquisado = TextBox1.Value
    If ValorPesquisado = "" Then Exit Sub
    For Each Planilha In ThisWorkbook.Sheets
    With Planilha.Cells
        Set Pesquisa = .Find(ValorPesquisado, LookIn:=xlValues)
        If Not Pesquisa Is Nothing Then
            firstAddress = Pesquisa.Address
            k = 0
            Do While firstAddress <> Address
                Address = Pesquisa.Address
                ValorColB = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=1)
                ValorColC = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=2)
                ValorColD = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=3)
                Texto = Texto & TextBox2 & TextBox2 & "Produto: " & ValorColB
               
                Exit For
                'Set c = .FindNext(c)
            Loop
        End If
    End With
    Next Planilha
    If IsEmpty(Texto) Then
    MsgBox "Não foi possível localizar a Produto." & vbLf & "Verifique o valor digitado e refaça a sua busca."
    Else
    TextBox2 = "Codigo : " & ValorPesquisado & vbLf & "foi localizada." & vbLf & Texto

    End If
    End Sub

    sexta-feira, 12 de novembro de 2010 10:20
  • Rafael,

      Olha so pq, quando o resultado encontrado na pesquisa  vem dessa forma. ( 55090 ABS ALWAYS BAS M SEC ABAS L16P13)  com o codigo na frente .. eu gostaria que fosse so a descrição do produto dessa forma ( ABS ALWAYS BAS M SEC ABAS L16P13 ) ja apaguei algumas linha nos codigo mais ñ encontrei onde esta esse comando .

     

     

    Private Sub CommandButton1_Click()
    Dim Planilha
    Dim firstAddress
    Dim Address
    Dim Pesquisa
    Dim Texto
    Dim k
    Dim ValorPesquisado
    Dim ValorColB, ValorColC, ValorColD


    ValorPesquisado = TextBox1.Value
    If ValorPesquisado = "" Then Exit Sub
    For Each Planilha In ThisWorkbook.Sheets
    With Planilha.Cells
        Set Pesquisa = .Find(ValorPesquisado, LookIn:=xlValues)
        If Not Pesquisa Is Nothing Then
            firstAddress = Pesquisa.Address
            k = 0
            Do While firstAddress <> Address
                Address = Pesquisa.Address
                ValorColB = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=1)
                ValorColC = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=2)
                ValorColD = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=3)
                Texto = Texto & ValorColB
               
                Exit For
                'Set c = .FindNext(c)
            Loop
        End If
    End With
    Next Planilha
    If IsEmpty(Texto) Then
    MsgBox "Não foi possível localizar a Produto." & vbLf & "Verifique o valor digitado e refaça a sua busca."
    Else
    TextBox2 = ValorPesquisado & vbLf & "" & vbLf & Texto

    End If
    End Sub

    sexta-feira, 12 de novembro de 2010 10:40
  • Agora sim aceitei ... vlaw Rafael ..  ficou assim

     

     

    Private Sub CommandButton1_Click()
    Dim Planilha
    Dim firstAddress
    Dim Address
    Dim Pesquisa
    Dim Texto
    Dim k
    Dim ValorPesquisado
    Dim ValorColB, ValorColC, ValorColD


    ValorPesquisado = TextBox1.Value
    If ValorPesquisado = "" Then Exit Sub
    For Each Planilha In ThisWorkbook.Sheets
    With Planilha.Cells
        Set Pesquisa = .Find(ValorPesquisado, LookIn:=xlValues)
        If Not Pesquisa Is Nothing Then
            firstAddress = Pesquisa.Address
            k = 0
            Do While firstAddress <> Address
                Address = Pesquisa.Address
                ValorColB = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=1)
                ValorColC = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=2)
                ValorColD = Planilha.Range(Address).Offset(rowOffset:=0, columnOffset:=3)
                Texto = Texto & ValorColB
               
                Exit For
                'Set c = .FindNext(c)
            Loop
        End If
    End With
    Next Planilha
    If IsEmpty(Texto) Then
    MsgBox "Não foi possível localizar a Produto." & vbLf & "Verifique o valor digitado e refaça a sua busca."
    Else
    TextBox2 = Texto

    End If
    End Sub

    sexta-feira, 12 de novembro de 2010 11:06