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:
55 respostas em “Função para retirar acentos e caracteres especiais no Excel”
Não seria mais fácil usar um Replace, pra ir trocando o que achar?
Muito útil.
Muitíssimo obrigado.
Deus te abençoe! Me ajuda muito uso direto nas importações de planilhas
Perfeito !!! Me ajudou a resolver um problemão …
Existe uma forma desta função ficar disponível para sempre no Excel?
Muito útil!
Vai me ajudar bastante no trabalho.
Muito obrigado!
Ótimo! Muito obrigado!!
muito bom.
teria como aplicar de forma a ao inves de trazer noutra celula o resultado, apenas aplicar sobre a atual e converter a mesma?
exemplo:
na celula A1, contem a palavra café e ao executar a macro, ela apenas converta o conteudo da celula a1, para cafe “sem o acento”? como consigo fazer algo assim?
at,
Olá Damião, essa função ajudou muito, mas antes usava a versão 2011, hoje estou com a versão 2015, não estou conseguindo salvar a função, pode me ajudar?
P.S. Uso Mac
Obrigado
Olá Danilo!
Infelizmente não tenho como testar no Mac, mas fiz um teste Office 2016 no Windows.
Para conseguir usar a macro, eu precisei salvar a planilha como “Excel Macro-Enabled Workbook (.xlsm)”. Não tenho certeza se isso era necessário nas versões anteriores do Office.
Abraços
Funciona bem!
Estou aplicando no trabalho. Muito obrigado!
Show de bola.
Antes eu utilizava o localizar e substituir….
Assim é muito mais simples.
muito obrigada
Ao Cogumelo!
Quero agradecer muito sobre a informação de (tirar acentos no excel).
Eu trabalho com access e não sou programador e não tenho paciência para aprender. Pesquisei muito sobre o tema e copiava as expressões em VBS e SQL e nunca dava certo.
Agora fiz isso no access embora era para o excel e deu certo.
Agradecido
Irineu Almeida
Ola eu fiz uns ajustes para deixar automático conforme a seleção do usuário, podendo fazer a verificação em centenas de células
posso comentar aqui o codigo?
Ivanes,
Pode sim, fique a vontade para contribuir!
Muito útil, obrigada
Muito bom mesmo! Vc é o cara!
Muito bom. Obrigado
Muito bom!!
Muitíssimo obrigado!!!
Martins, muito bom post … Obrigado pela ajuda!! Abs!!
Muito útil. Parabéns pela objetividade.
Muito obrigado!
Codigo muito util!! Parabéns pela postagem!!!
Ola Damião, essa função foi-me muito útil, porém quando rodo uma sub qualquer em um outro módulo ele fica chamando essa função o tempo todo.
Pode me informar o que pode estar ocorrendo?
“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.”
Onde fica o “Desenvolvedor” no Excel 2010?
Para habilitar a aba “Desenvolvedor” vá em:
Muito obrigada pela excelente post. Estou com o seguinte problema: utilizei durante alguns dias a função Acento, sem problemas. Sem aparente explicação, ela parou de funcionar e é mostrado #NOME?. A função continua sendo mostrada na lista de funções. Vc poderia me ajudar?
Olá Lubia,
Tente verificar se a célula que a função está referenciando não foi movida ou apagada.
Parabéns pelo tópico muito obrigado
Damião, excelente… sem palavras para dizer exatamente o quanto essa solução é útil!
Parabéns!
Edson Gonçalves.
Excelente, muito obrigado!
Show de bola!!!!!!!!!!!!!! obrigado.
Nossa, inventou a roda. Muito obrigado amigo. Genial.
Muito obrigado comapnheiro, quebrou um galhão !
Adorei!! Obrigada!!!!
Você pode publicar uma fórmula de como tirar caracteres tipo, %NNN, MARIA DBDB
Mas essa valeu muito!
Como aplicar em uma planilha inteira?
Existem várias maneiras, a mais simples acredito que seja criar uma nova planilha, onde cada célula seria uma referencia a mesma célula na planilha original, mas passando pela função de remover acentos.
Por exemplo, na célula A1 da NovaPlanilha o valor seria =Acentos(PlanilhaOriginal!A1).
Abraços
Muito bom!!
Valeu!!!
muito Bom, funciona mesmo!!! Parabéns!!!
TOP demais…
Me ajudou muito…
Obrigada
Não poderia ter acessado este conteúdo sem ter deixado uma menção de agradecimento. Muito bom meeesmo. Parabéns e obrigado!
Muito obrigada!!!!
Simplesmente excelente!!!
Perfeito! Obrigada
Excepcional
Muito bom o post, mas quando uma palavra tem ç minúsculo ele troca por C maiúsculo.
Como fazer para ele respeitar minúsculas e maiúsculas ?
Grato
excelente ate para leigos!!! parabens
Muito agradecido.
Valeu, funcionou aqui!
Ótima dica.
Estou realizando treinamento em excel vba pelo curso adv, http://www.cursoadv.com.br
Estou sempre em busca de material complementar para melhorar meu desempenho.
O blog possui muito material legal. Parabéns.
Mano, obrigado de verdade e parabéns pela iniciativa!
Muito obrigado pela oportunidade de compartilhar essa função. Irei ganhar muito tempo com a utilização da mesma. Segui os passos, testei e funcionou direitinho.
Meu amigo, salvou bonito! Abraços e bom trabalho!
Muito obrigado! Usei essa função dezenas de vezes. Parabéns!
simplesmente genial. Minha vida mudou. valeu man 🙂
Me ajudou muito! Obrigado.