Usuário com melhor resposta
como fazer um TextBox1 pesquisa algo na planilha e jogar o resultando encontrado no TextBox2

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
Respostas
-
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/- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 17:13
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 17:13
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/ -
-
-
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/- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 17:13
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 17:13
-
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, ValorColDUnload 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 & TextoEnd If
End Sub -
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 & TextoEnd If
End Sub -
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 & TextoEnd If
End Sub -
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 = TextoEnd If
End Sub