Neste conteúdo você aprenderá como Como Criar Keywords no Excel VBA. Este recurso é fundamental para identificar ocorrências em textos grandes.
Para esclarecer mais este objetivo, vamos criar um problema para que possamos resolver através de Keywords no Excel VBA.
Conforme a tabela abaixo, com base nas descrições ocorridas na Coluna A da tabela, precisamos identificar quantas vezes aparecem os termos “Gaxeta”, “Redutora”, “Revisão/Reparo” e a palavra “Selo”.
Perceba que a Coluna B que chamamos de problema ela está em branco.
Nosso objetivo é ler cada linha e verificar se uma dessas palavras fazem parte da descrição e em seguida escrever a palavra identificada na Coluna B.

Como Criar Keywords no Excel VBA?
1 – Criando um Botão na Aba que vai Automatizar o Processo
Conforme imagem abaixo, vamos criar um botão de comando para associar a macro “PalavraChave” que será executada, a fim de que possamos identificar em cada linha o problema relatado na descrição

2 – Criando o Código que permitirá identificar as Keywords no Excel VBA
O código abaixo pode até parecer complexo, mas a ideia é utilizar um loop para verificar se cada palavra destacada, por exemplo, a palavra “vazamento”, se ela aparece na posição da descrição de cada linha, a contar da primeira posição.
O que o código faz: Ele verificar cada posição da descrição e se a palara pesquisada existir nela, ele acrescenta na coluna problema o nome da palavra.
Após verificar todas as descrições e caso não ache estas palavras que foram listadas, a célula vai ficar vazia. Desta forma, o código percorre novamente as células vazias adicionando a palavra “Outros” nela.
Sub PalavraChave()
Dim totLinha As Integer
Dim linha As Integer
Dim strTexto As String
Dim i As Integer
totLinha = WorksheetFunction.Count(Sheets("Problemas").Range("A:A")) + 1
Sheets("Problemas").Range("E2:E" & totLinha).ClearContents
For linha = 2 To totLinha
'Vazamento
For i = 1 To Len(Range("A" & linha))
strTexto = Mid(Range("A" & linha).Value, i, Len("vazamento"))
If strTexto = "vazamento" Or strTexto = "Vazamento" Or strTexto = "VAZAMENTO" Then
Range("B" & linha) = "Vazamento"
End If
Next i
'Redutora
For i = 1 To Len(Range("A" & linha))
strTexto = Mid(Range("A" & linha).Value, i, Len("redutora"))
If strTexto = "redutora" Or strTexto = "Redutora" Or strTexto = "REDUTORA" Then
Range("B" & linha) = "Redutora"
End If
Next i
'selo
For i = 1 To Len(Range("A" & linha))
strTexto = Mid(Range("A" & linha).Value, i, Len("selo"))
If strTexto = "selo" Or strTexto = "SELO" Or strTexto = "Selo" Then
Range("B" & linha) = "Selo"
End If
Next i
'gaxeta
For i = 1 To Len(Range("A" & linha))
strTexto = Mid(Range("A" & linha).Value, i, Len("gaxeta"))
If strTexto = "gaxeta" Or strTexto = "Gaxeta" Or strTexto = "GAXETA" _
Or strTexto = "GAX" Or strTexto = "gax" Or strTexto = "GAX" Then
Range("B" & linha) = "Gaxeta"
End If
Next i
Next linha
'Percorre as linhas que ficaram vazias
For linha = 2 To totLinha
If Range("B" & linha).Value = "" Then
Range("B" & linha).Value = "Outros"
End If
Next linha
End Sub
Após a execução teremos o resultado abaixo preenchido. Aos mesmo tempo, criamos uma tabela para identificar a quantidade de vezes cada palavra aparece na tabela


Gostou do conteúdo?
Deixe um comentárrio aqui embaixo
Até o próximo tutorial!!