Remover acentos no Excel e converter caracteres especiais no Excel

Remover acentos no Excel e converter caracteres especiais no Excel

Neste artigo você aprenderá como remover acentos no Excel e converter caracteres especiais no Excel como UTF8 para ASCII.

Em diversas situações é necessário remover a acentuação de textos no Excel. Como por exemplo quando você tem uma base de dados que vem de um sistema e você precisa realizar o batimento com outras informações.

Código VBA para remover acentos no Excel

Para remover acentos de textos no Excel nós utilizaremos uma função própria no Excel feita em VBA. Também chamadas de UDF.

Caso já saiba como utilizar funções próprias no Excel você pode copiar e aplicar diretamente o VBA abaixo, mas caso não conheça, veja no último tópico como instalar estas funções no Excel.

Function fnRetirarAcentos(ByVal vStrPalavra As String) As String
    Dim lstrEspecial    As String
    Dim lstrSubstituto  As String
    Dim lstrAlterada    As String
    Dim liControle      As Integer
    Dim liPosicao       As Integer
    Dim lstrLetra       As String
    
    Application.Volatile

    lstrEspecial = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ"
    lstrSubstituto = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"
 
    lstrAlterada = ""
 
    If vStrPalavra <> "" Then
        For liControle = 1 To Len(vStrPalavra)
            lstrLetra = Mid(vStrPalavra, liControle, 1)
            liPosicao = InStr(lstrEspecial, lstrLetra)
        
            If liPosicao > 0 Then
                lstrLetra = Mid(lstrSubstituto, liPosicao, 1)
            End If
        
            lstrAlterada = lstrAlterada & lstrLetra
        Next
        
        fnRetirarAcentos = lstrAlterada
    End If
End Function

Código VBA para converter UTF8 para ASCII no Excel

Para converter UTF8 para ISO-8859-1 ou ASCII no Excel nós utilizaremos uma função própria no Excel feita em VBA. Também chamadas de UDF.

Caso já saiba como utilizar funções próprias no Excel você pode copiar e aplicar diretamente o VBA abaixo, mas caso não conheça, veja no último tópico como instalar estas funções no Excel.

Public Function fnConverterUTF8(ByVal Texto_para_converter As String)
    Dim l As Long, sUTF8 As String
    Dim iChar As Integer
    Dim iChar2 As Integer
    
    For l = 1 To Len(Texto_para_converter)
        iChar = Asc(Mid(Texto_para_converter, l, 1))
        If iChar > 127 Then
            If Not iChar And 32 Then
            iChar2 = Asc(Mid(Texto_para_converter, l + 1, 1))
            sUTF8 = sUTF8 & ChrW$(((31 And iChar) * 64 + (63 And iChar2)))
            l = l + 1
        Else
            Dim iChar3 As Integer
            iChar2 = Asc(Mid(Texto_para_converter, l + 1, 1))
            iChar3 = Asc(Mid(Texto_para_converter, l + 2, 1))
            sUTF8 = sUTF8 & ChrW$(((iChar And 15) * 16 * 256) + ((iChar2 And 63) * 64) + (iChar3 And 63))
            l = l + 2
        End If
            Else
            sUTF8 = sUTF8 & Chr$(iChar)
        End If
    Next l
    fnConverterUTF8 = sUTF8
End Function

Como colocar uma função definida no Excel

Para colocar nossas funções próprias nós iremos criar um suplemento do Excel.

  1. Abra o Excel com uma planilha em branco.
  2. Caso não esteja habilitada a sua guia desenvolvedor habilite-a, veja neste artigo como: https://www.guiadoexcel.com.br/como-criar-funcoes-proprias-no-excel-com-vba/.
  3. Clique na guia Desenvolvedor e no botão Visual Basic.
  4. Na estrutura da esquerda selecione aberta.
  5. Clique no menu em Inserir->Módulo.
  6. Abra este novo arquivo criado clicando duas vezes e cole o código seguinte. Este é o código da nossa função própria que identifica a posição de um carácter em um texto de uma célula á partir de determinada ocorrência.

Como remover acentos no Excel

Para utilizar a função de remover acentos no Excel você utilizará a função =fnRetirarAcentos(A2), bastando substituir o A2 pela célula de referência que deseja remover acentos.

A conversão é realizada automaticamente após a aplicação da fórmula no Excel.

Como converter caracteres especiais no Excel

A utilização dela é bastante simples, basta você digitar =fnConverterUTF8(A1), substituindo o A1 pela célula aonde está o texto para converter em ASCII, e o mesmo será convertido imediatamente.

A performance também é boa, para uma lista de 40.000 linhas os textos foram convertidos em cerca de 2 minutos.

Converter utf8 para iso-8859-1 ASCII ANSI

No exemplo acima você pode ver a utilização da mesma em uma planilha Excel, e no download deste arquivo você tem a função aplicada diretamente em um exemplo.

Esta é mais uma função que você não sabe como usar, mas é bem possível que seja necessário, principalmente se você tiver que trabalhar com algum dado de uma lista antiga, ou exportada de uma forma incorreta por um cliente e você tenha que ajustá-la. Por isso a nossa sugestão é de você criar um suplemento com as funções que você criou e encontrou na internet, se já não tiver, e adicionar mais esta função.

Download da planilha

Para realizar o download desta planilha com o exemplo das fórmulas aplicadas você pode se cadastrar e baixar no link abaixo.

Nele você receberá e-mails semanais com novos artigos, dicas e ofertas de treinamentos e planilhas que irão te ajudar na sua carreira e trabalho.

 

Baixe a planilha