Função para retirar acentos e caracteres especiais no Excel

image_pdfimage_print

A função a seguir, programada em VBA para ser utilizada no Excel, serve para retirar quaisquer acentos ou caracteres especiais de uma célula.


Function Acento(caract)
 
    'Acentos e caracteres especiais que serão buscados na string
    'Você pode definir outros caracteres nessa variável, mas
    ' precisará também colocar a letra correspondente em codiB
    codiA = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ"
     
    'Letras correspondentes para substituição
    codiB = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"
     
    'Armazena em temp a string recebida
    temp = caract
     
    'Loop que irá de andará a string letra a letra
    For i = 1 To Len(temp)
     
        'InStr buscará se a letra indice i de temp pertence a
        ' codiA e se existir retornará a posição dela
        p = InStr(codiA, Mid(temp, i, 1))
         
        'Substitui a letra de indice i em codiA pela sua
        ' correspondente em codiB
        If p > 0 Then Mid(temp, i, 1) = Mid(codiB, p, 1)
    Next
     
    'Retorna a nova string
    Acento = temp
     
End Function

Para usá-la, no Excel vá em Desenvolvedor > Visual Basic e em seguida em Inserir > Módulo. Lá, cole o código acima e salve o módulo.

Feito isso, agora é possível usar Acentos(caract) como uma função qualquer do Excel usando a sintaxe =Acentos(CELULA), como por exemplo:

 

Fonte: COGUMELLO

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!