Como Criar Keywords no Excel VBA

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!!

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *