Retirar acentos e caracteres especiais no Excel

Neste artigo você aprenderá a retirar acentos e caracteres especiais no Excel.

Depois de alguns meses sem postar por motivos pessoais, retomo as atividades do blog, a intenção é que tenhamos uma nova postagem por semana e também o lançamento do Curso de Excel até o final do primeiro semestre de 2017.

Deixando de lado os planos para o futuro vamos falar sobre o presente, e nele temos um artigo muito interessante que poderá te ajudar muito.

Muitas vezes quando estamos realizando um cruzamento de dados entre bases diferentes necessitamos que estes dados estejam padronizados, e uma das ações que devemos fazer é retirar acentos e caracteres especiais dos dados para realizar os cruzamentos.

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

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

Para usá-la, no Excel vá até o ambiente de desenvolvimento do VBA apertando ALT+F11.
Ou na aba Desenvolvedor > Visual Basic e em seguida em Inserir > Módulo.

No novo módulo, cole o código abaixo:

Function Acento(caract)

'Função extraída da internet
'Publicada em www.douglasgodoy.com.br

'Acentos e caracteres especiais que serão buscados no texto digitado
'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 percorerá a palavra letra a letra
For i = 1 To Len(temp)

'InStr buscará se a letra pertence ao grupo com acentos 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 o texto sem o acento ou caractere especial
Acento = temp

End Function

Esta função armazena o texto em uma variável, e através de um Loop percorre a palavra letra a letra, quando encontra um dos caracteres listados na matriz de acentos ele substitui o carácter pelo outro que é correspondente e esta na mesma posição na matriz B.

Sabendo-se como a função funciona e colando a mesma no novo módulo, é possível usar a função.

Digite em qualquer célula “=acentos(célula)”, =acentos(“PALAVRA COM ACENTO”)  para retirar os acentos, ela pode ser utilizada como uma função qualquer do Excel usando a sintaxe =Acentos(CELULA), como no exemplo abaixo:

retirar acentos com VBA
Esta é uma forma simples e rápida que temos de retirar os acentos e caracteres especiais de um texto.
Caso conheça outra forma compartilhe conosco.

Veja no link abaixo outro artigo bacana também…
http://douglasgodoy.com.br/vba-aprenda-criar-formulario-de-cadastro/

Um abraço!

Douglas Godoy

Comentários

  • Mohamad
    Responder

    SHow! E caso eu queira substituir algum caractere por vazio?

    Obrigado.

    • Douglas Godoy

      Mohamad,

      A lógica é a mesma, basta você escolher qual será o caractere que substituirá por vazio e dar o spaço na sequencia de valores.

      Caso não seja esta sua dúvida me escreva.

      Abs.

      Douglas

  • Dom Parada
    Responder

    Legal sua postagem, muito obrigado

    • Douglas Godoy

      Olá Dom,

      Muito Obrigado pela vista e pelo comentário.

      Abs