Notifications
Clear all

Pesquisar palavras exatas.

5 Posts
3 Usuários
0 Reactions
1,360 Visualizações
Jozelia
(@jozelia)
Posts: 45
Eminent Member
Topic starter
 

Boa Tarde,
Estou a procura de um código que retorne apenas a palavra exata digitada no textbox ex:

Palavra para pesquisa textbox= Plano Meta
Mas na planilha tenho:
Plano Meta
Plano Meta 1
Plano Meta 2
Plano Meta

-Quando digito apenas "plano meta" quero que me retorne apenas os 2 planos meta.

O código que uso sempre em outras planilhas minhas é:

'*** Vai fazer a busca na listbox apenas baseando-se na data

' Condição... se não for selecionado as datas para pesquisa não vai executar o código
If Me.TextBox4 = "" Or Me.TextBox3 = "" Then

MsgBox ("Favor preencher a data inicial e final para a pesquisa")
Me.TextBox4.SetFocus
Exit Sub

'se estiverem preenchidas as datas a pesquisa será feita
Else

''se estiverem preenchidas as datas a pesquisa será feita



    valor_pesq = Cmb_modalidades.Text

    Dim guia As Worksheet
    Dim linha As Integer
    Dim coluna As Integer
    Dim coluna_data As Integer
    Dim linhalistbox As Integer
    Dim valor_celula As String
    Dim valor_celula_data As Date
    Dim conta_registros As Integer
    
    Dim data_inicio As Date
    Dim data_fim As Date
        
    Set guia = ThisWorkbook.Worksheets("Filtro")
    
    data_inicio = Me.TextBox4
    data_fim = Me.TextBox3
    linhalistbox = 0
    conta_registros = 0
    linha = 5
    coluna = 5
    coluna_data = 3
     
     
    lst_busca2.Clear
    
    Sheets("Filtro").Select
     
    With guia
        While .Cells(linha, coluna).Value <> Empty
            valor_celula = .Cells(linha, coluna).Value 'recebe o valor da célula para fazer o teste
            valor_celula_data = .Cells(linha, coluna_data).Value 'recebe o valor da data para fazer o teste
            
            'Condição para satisfazer a busca tem que ser igual ao valor da texbox1 e estar entre o valor inicial e final das datas
            If UCase(Left(valor_celula, Len(valor_pesq))) = UCase(valor_pesq) _
            And valor_celula_data >= data_inicio _
            And valor_celula_data <= data_fim Then
            
            
                'adiciona itens a listbox
                
         With lst_busca2
             .AddItem
             .List(linhalistbox, 0) = Sheets("Filtro").Cells(linha, 3) 'Data
             .List(linhalistbox, 1) = Sheets("Filtro").Cells(linha, 2) 'Nome
             .List(linhalistbox, 2) = Sheets("Filtro").Cells(linha, 15) 'Quant
             .List(linhalistbox, 3) = Sheets("Filtro").Cells(linha, 5) 'Serviço
             .List(linhalistbox, 4) = Sheets("Filtro").Cells(linha, 19) 'Forma
             .List(linhalistbox, 5) = Sheets("Filtro").Cells(linha, 11) 'Aut/Num
             .List(linhalistbox, 6) = Format(Sheets("Filtro").Cells(linha, 12), "currency") 'Entrada
             .List(linhalistbox, 7) = Format(Sheets("Filtro").Cells(linha, 13), "currency") 'Saída
             .List(linhalistbox, 8) = Sheets("Filtro").Cells(linha, 7) 'Observação
             .List(linhalistbox, 9) = Sheets("Filtro").Cells(linha, 14) 'Func
             
              linhalistbox = linhalistbox + 1
              End With
             conta_registros = conta_registros + 1
             
            End If
            linha = linha + 1
        Wend
    End With
    
   
  Me.lbl_registros = "Referente a  " & data_fim & "  foram encontrados  " & conta_registros & "  registros."
   Me.Label96 = conta_registros

Mas com esse código se eu pesquisar plano meta, ele retorna todos os planos meta (Meta, Meta 1 e Meta 2)
obs: Não tenho a planilha ainda, estou a procura para poder faze-la

Obrigada.

 
Postado : 08/06/2017 12:35 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Jozelia,

Boa tarde!

Por gentileza, anexe aqui no fórum mesmo seu arquivo compactado xom .ZIP pois assim todos poderão rodar, depurar e ajudar.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 08/06/2017 12:43 pm
Jozelia
(@jozelia)
Posts: 45
Eminent Member
Topic starter
 

Olá segue um exemplo.

 
Postado : 08/06/2017 1:04 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde Jozelia,

Na linha 53, troque isso:

            If UCase(Left(valor_celula, Len(valor_pesq))) = UCase(valor_pesq) _

Por isso:

            If UCase(valor_celula) = UCase(valor_pesq) _

Qualquer coisa da o grito.
Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 08/06/2017 1:14 pm
Jozelia
(@jozelia)
Posts: 45
Eminent Member
Topic starter
 

Olá Bernado, funcionou perfeitamente!

Obrigada

 
Postado : 08/06/2017 1:20 pm