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)

'Publicada em www.douglasgodoy.com.br
'Conheça meu canal no youtube.'
'https://www.youtube.com/c/douglasgodoybr?sub_confirmation=1

'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







.

Sobre o Autor

Comentários bacanas...

  1. Eduardo Faria

    Olá!

    Primeiramente gostaria de agradecer pelo incrível tutorial.
    Ocorre que alguns caracteres não são reconhecidos pela macro e acabam não sendo substituídos. Tentei acrescentar na macro mas o ícone muda para um ponto de interrogação.
    Nesse caso, saberia como eu poderia prosseguir?

    Aguardo retorno e, desde já, grato!

  2. João Paulo dos Santos Araújo

    Boa tarde Douglas, percebi que quando fecho o arquivo excel, perco a função/módulo que havia criado.

    É possível que fique guardado na minha máquina essa função?
    Para que eu possa utilizar em outros arquivos do Excel.

    1. Douglas Godoy Resposta do Autor

      João,
      Para que você não perca seus códigos você deve salvar o arquivo com o formato xlsm ou xlsb, assim suas macros ficam sempre gravadas e sempre poderá usar quando precisar.

      Abraços

  3. Pingback: Extrair texto e números no Excel - Função em VBA - Douglas GodoyDouglas Godoy

  4. Debora

    Funcionou perfeitamente, e me ajudou muito, otimizando o tempo para conclusão de uma planilha com mais de 5.000 linhas.

    Abraços.

  5. Roberto Faria

    Estou passando aqui para prestar minha justa homenagem. Obrigado por este incrível tutorial, já salvou-me INÚMERAS vezes. Parabéns !

    1. Douglas Godoy Resposta do Autor

      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

    2. Daniel

      Nesse caso também pode usar só a função “Substituir” (CTRL+L ou CTRL+F) e substituir o caractere desejado por um espaço.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *