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:
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
Artigo muito bom e útil.
Obrigado por compartilhar.
Obrigado pelo feedback! Abraços
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!
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.
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
Pingback: Extrair texto e números no Excel - Função em VBA - Douglas GodoyDouglas Godoy
Perfeito Douglas, muito obrigado vai nos ajudar bastante.
Perfeito, tutorial com instruções fáceis e mais fácil ainda de inserir o módulo. Muito obrigado pela ajuda.
Muito bom, me ajudou muito, parabéns pela disposição em compartilhar o que sabe.
Muito obrigado João, eu que agradeço pelo comentário. Abraços
Excelent
Obrigado! Abraços
Funcionou perfeitamente, e me ajudou muito, otimizando o tempo para conclusão de uma planilha com mais de 5.000 linhas.
Abraços.
Show de Bola Débora!
Obrigado pelo comentário, sempre que precisar fico a disposição!
Abraços
Me ajudou! Dica excelente e muito fácil de executar!
Foi bem didático!
Muito obrigado, ajudou muito aqui..
Sucesso
abs
Estou passando aqui para prestar minha justa homenagem. Obrigado por este incrível tutorial, já salvou-me INÚMERAS vezes. Parabéns !
Roberto, agradeço pelo seu feedback!
Muito obrigado!
Eu que agradeço! Abraços!
Aí sim,,, Muito bom. Valeu por disponibilizar parte do seu tempo para nos ensinar.
Show de bola Júlio, eu que agradeço pelo seu comentário. Um abraço.
Mestre Douglas…funcionou perfeitamente! Obrigado
Obrigado pela visita e msg! Um abraço!
Muito Obrigado pelo Feedback! Uma abraço!
SHow! E caso eu queira substituir algum caractere por vazio?
Obrigado.
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
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.
Legal sua postagem, muito obrigado
Olá Dom,
Muito Obrigado pela vista e pelo comentário.
Abs