Converter utf8 para iso-8859-1, ASCII, ANSI – Excel VBA

Customizar botão direito do mouse
Alterar funções do botão direito do Excel
11 de junho de 2016
Gráfico burndown Excel 5
Gráfico Burndown Scrum Excel
19 de junho de 2016

Converter UTF8 para iso-8859-1, ASCII, ANSI – Excel VBA

Esta semana precisei converter UTF8 para iso-8859-1 de uma lista de dados, ou seja alfabeto latin, utilizado no Brasil, também conhecido como ASCII ou ANSI, então procurei e encontrei em um fórum a função adaptada que realiza esta conversão no Excel com VBA. O original foi encontrado neste fórum.

Para você inserir uma função própria no Excel, siga os passos descritos no artigo Como criar funções próprias Excel VBA deste mesmo site, com a versão passo-a-passo em vídeo e em texto.

Código da função para converter UTF8

Abaixo o código fonte do código fonte VBA para converter UTF8 para ISO-8859-1 ou ASCII.

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

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 “Decodificar UTF8 para ISO-8859-1” Decodificar-UTF8-para-latin-1.zip – Baixado 44 vezes – 14 KB

Abraço

Marcos Rieper

Deixe uma resposta

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

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.