Como fazer com que o resultado do protótipo abaixo apareça preenchendo as células?
fiz um protótipo, se quiser usar, jogue dentro de um módulo:
'byJackSSL
'recebe item a pesquisar,coluna a efetuar a pesquisa e
'tipo de pesquisa.
'retorna todas as ocorrências do item pesquisado
'se passar 1 como tipo pesquisa, retorna somente palavra exata, 0 retorna palavra semelhante
Public Function PesquisaItem( _
ByVal strpesquisa As String, _
ByVal coluna_pesquisa As Range, _
ByVal tipo_pesquisa As Integer) As String
On Error Resume Next
Dim str_result As String
Dim i As Integer
Dim tem_resultado As Boolean
Dim ultima_linha As Integer
Dim linha_leitura As String
'pegamos a última linha preenchida da coluna
ultima_linha = CInt( Range( coluna_pesquisa.Address ).End( xlDown ).Cells.Row ) + 1
str_result = Empty
tem_resultado = False
If strpesquisa <> Empty Then 'se pesquisa foi preenchida
'pecorremos 1 a 1 as células da coluna selecionada em busca de ocorrências
For i = 0 To ultima_linha - 1 Step 1
linha_leitura = Plan1.Cells( i , Range( coluna_pesquisa.Address ).End( xlDown ).Cells.Column )
'se tipo da pesquisa = 1 (pesquisa exata)
If tipo_pesquisa = 1 Then
If linha_leitura = strpesquisa Then
tem_resultado = True
str_result = "- " & linha_leitura & "*#*" & str_result
End If
Else 'pesquisa ocorrencia contendo a palavra chave
If InStr(1, linha_leitura, strpesquisa) Then
tem_resultado = True
str_result = "- " & linha_leitura & vbCrLf & str_result
End If
End If
Next i
'exibe caixa de mensagem com as ocorrências
If Not tem_resultado Then
MsgBox "nenhuma ocorrência da palavra pesquisada foi encontrada!"
Else
MsgBox str_result
End If
PesquisaItem = "1"
Else
PesquisaItem = "0"
End If
End Function
um exemplo de uso: suponha que queira pesquisar na coluna A, a partir de A1 até a última linha preenchida desta coluna, e queira pesquisar por "produto blabla". vamos dizer que vai usar a célula D1 para digitar a sua pesquisa e a célula D2 para jogar a fórmula.
ponha em D2:
=PesquisaItem(D1; A1; 1)
onde D1 é a célula onde vai digitar a pesquisa, A1 a coluna onde vai ser feita a busca e "1" significa que quer buscar ocorrências exatas da palavra pesquisada.
se quiser procurar por qualquer produto que tenha a palavra "blabla" na descrição, poderia ser:
=PesquisaItem(D1; A1; 0)
o argumento "0" faz uma pesquisa pela ocorrência da palavra chave, mesmo que associada a outras palavras na descrição.
o resultado é exibido em uma caixa de mensagem, mas gostaria de adaptar para jogar em células o resultado.
Alguém pode me ajudar?
Postado : 28/11/2014 6:05 am