quinta-feira, 24 de julho de 2014

Função Excel (Remover Acentuação e Quebra de Linha)


Abaixo segue duas funções para remover acentuação:

​Function RemoveAcento(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
    RemoveAcento = temp
   
End Function

​Após adicionar a função no Excel temos mais coisas a fazer:


=MAIÚSCULA(TIRAR(ARRUMAR(RemoveAcento(A3))))

​Oque Cada Função faz?:

MAIÚSCULA = Converte a cadeia de texto em maiúsculas.
TIRAR = Remove do texto todos os caracteres não imprimíveis.
ARRUMAR = Remove os espaços de uma cadeia de texto, com exceção dos espaços simples entre palavras.
RemoverAcento = Função adicionada no excel que transforma um carácter acentuado para um não acentuado.

Um comentário: