none
Procurar Palavra em uma Planilha (VBA) RRS feed

  • Pergunta

  • Olá, eu preciso de ajuda com a função "contém"; se é que ela existe.

    Com esta programação eu consigo achar as primeiras palavras:

    While .Cells(Linha, 1).Value <> Empty
                TextoCelula = .Cells(Linha, 1).Value
                 If UCase(Left(TextoCelula, Len(TextoDigitado))) = UCase(TextoDigitado) Then
                  With UserForm1.ListBox1
                 .AddItem
                 .List(linhalistbox, 0) = Sheets("plan1").Cells(Linha, 1)
                 .List(linhalistbox, 1) = Sheets("plan1").Cells(Linha, 2)
                 .List(linhalistbox, 2) = Sheets("plan1").Cells(Linha, 3)
                 .List(linhalistbox, 3) = Sheets("plan1").Cells(Linha, 4)

                  linhalistbox = linhalistbox + 1
                  End With

                End If
                Linha = Linha + 1

            Wend

    Eu preciso que encontre qualquer palavra na frase, e não só na primeira palavra.

    Adan

                                           
    sexta-feira, 17 de fevereiro de 2017 18:14

Respostas

  • Voce tem qu eusar a funçao instr (https://www.techonthenet.com/excel/formulas/instr.php), deste jeito:

    While .Cells(Linha, 1).Value <> Empty
                TextoCelula = .Cells(Linha, 1).Value
                 If INSTR(UCase(TextoCelula),  UCase(TextoDigitado))<>0 Then
                  With UserForm1.ListBox1
                 .AddItem
                 .List(linhalistbox, 0) = Sheets("plan1").Cells(Linha, 1)
                 .List(linhalistbox, 1) = Sheets("plan1").Cells(Linha, 2)
                 .List(linhalistbox, 2) = Sheets("plan1").Cells(Linha, 3)
                 .List(linhalistbox, 3) = Sheets("plan1").Cells(Linha, 4)
    
                  linhalistbox = linhalistbox + 1
                  End With
    
                End If
                Linha = Linha + 1
    
            Wend

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    sexta-feira, 17 de fevereiro de 2017 20:30
  • Obrigado William.

    Mas acabei concatenando com * e deu certo.

    Mas muito obrigado pela atenção.

    sexta-feira, 17 de fevereiro de 2017 20:52

Todas as Respostas

  • Voce tem qu eusar a funçao instr (https://www.techonthenet.com/excel/formulas/instr.php), deste jeito:

    While .Cells(Linha, 1).Value <> Empty
                TextoCelula = .Cells(Linha, 1).Value
                 If INSTR(UCase(TextoCelula),  UCase(TextoDigitado))<>0 Then
                  With UserForm1.ListBox1
                 .AddItem
                 .List(linhalistbox, 0) = Sheets("plan1").Cells(Linha, 1)
                 .List(linhalistbox, 1) = Sheets("plan1").Cells(Linha, 2)
                 .List(linhalistbox, 2) = Sheets("plan1").Cells(Linha, 3)
                 .List(linhalistbox, 3) = Sheets("plan1").Cells(Linha, 4)
    
                  linhalistbox = linhalistbox + 1
                  End With
    
                End If
                Linha = Linha + 1
    
            Wend

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    sexta-feira, 17 de fevereiro de 2017 20:30
  • Obrigado William.

    Mas acabei concatenando com * e deu certo.

    Mas muito obrigado pela atenção.

    sexta-feira, 17 de fevereiro de 2017 20:52