Como procurar nomes sem se importar com nomes acentuados

Anônima
2010-04-13T13:35:24+00:00

Pessoal

Numa tabela tem váriuos nomes de pessoas. Alguns acentuados e outros não, mesmo quando semelhantes. Como: Dênis e Denis, Ângela e Angela, Márcia e Marcia - Sobrenosmes como Alcântaea e Alcantara e assim por diante.

Como fazer a busca usando procv sem que estes acentos inibam a busca ou retornem valores que não são tão exatos?

Gostaria de procuram Márcia e encontrar tanto com e sem acento.

grato


tack så mycket

Microsoft 365 e Office 365 | Instalar, resgatar, ativar | Para uso doméstico | Outro

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

Anônima
2010-04-13T19:33:36+00:00

Pode também criar uma função em VBA para fazer isso.

  1. Criar um novo módulo em VBA e copiar esta função para lá:

Function REMOVERACENTOS(ByVal texto As String) As String

    Dim novoTexto As String

    novoTexto = texto

    'Remove os acentos possíveis para a letra "A"...

    novoTexto = Replace(novoTexto, "á", "a")

    novoTexto = Replace(novoTexto, "à", "a")

    novoTexto = Replace(novoTexto, "â", "a")

    novoTexto = Replace(novoTexto, "ã", "a")

    novoTexto = Replace(novoTexto, "ä", "a")

    novoTexto = Replace(novoTexto, "Á", "A")

    novoTexto = Replace(novoTexto, "À", "A")

    novoTexto = Replace(novoTexto, "Â", "A")

    novoTexto = Replace(novoTexto, "Ã", "A")

    novoTexto = Replace(novoTexto, "Ä", "A")

    'Remove os acentos possíveis para a letra "E"...

    novoTexto = Replace(novoTexto, "é", "e")

    novoTexto = Replace(novoTexto, "è", "e")

    novoTexto = Replace(novoTexto, "ê", "e")

    novoTexto = Replace(novoTexto, "ë", "e")

    novoTexto = Replace(novoTexto, "É", "E")

    novoTexto = Replace(novoTexto, "È", "E")

    novoTexto = Replace(novoTexto, "Ê", "E")

    novoTexto = Replace(novoTexto, "Ë", "E")

    'Remove os acentos possíveis para a letra "I"...

    novoTexto = Replace(novoTexto, "í", "i")

    novoTexto = Replace(novoTexto, "ì", "i")

    novoTexto = Replace(novoTexto, "î", "i")

    novoTexto = Replace(novoTexto, "ï", "i")

    novoTexto = Replace(novoTexto, "Í", "I")

    novoTexto = Replace(novoTexto, "Ì", "I")

    novoTexto = Replace(novoTexto, "Î", "I")

    novoTexto = Replace(novoTexto, "Ï", "I")

    'Remove os acentos possíveis para a letra "O"...

    novoTexto = Replace(novoTexto, "ó", "o")

    novoTexto = Replace(novoTexto, "ò", "o")

    novoTexto = Replace(novoTexto, "ô", "o")

    novoTexto = Replace(novoTexto, "ö", "o")

    novoTexto = Replace(novoTexto, "Ó", "O")

    novoTexto = Replace(novoTexto, "Ò", "O")

    novoTexto = Replace(novoTexto, "Ô", "O")

    novoTexto = Replace(novoTexto, "Ö", "O")

    'Remove os acentos possíveis para a letra "U"...

    novoTexto = Replace(novoTexto, "ú", "u")

    novoTexto = Replace(novoTexto, "ù", "u")

    novoTexto = Replace(novoTexto, "û", "u")

    novoTexto = Replace(novoTexto, "ü", "u")

    novoTexto = Replace(novoTexto, "Ú", "u")

    novoTexto = Replace(novoTexto, "Ù", "E")

    novoTexto = Replace(novoTexto, "Û", "E")

    novoTexto = Replace(novoTexto, "Ü", "E")

    'Devolve textos sem os acentos e caracteres especiais

    REMOVERACENTOS = novoTexto

End Function

  1. Depois pode usar essa função =REMOVERACENTOS(colocar a referência da célula onde está o nome com acento) e devolverá o nome sem acentos. Pode também usar está função combinada com outras como o PROCV.

Cumprimentos,

Maria Proiete


Maria Proiete ![](http://www.mariaproiete.com/images/feed.png) ![](http://www.mariaproiete.com/images/linkedin.png) ![](http://www.mariaproiete.com/images/facebook.png) ![](http://www.mariaproiete.com/images/twitter.png) 

Microsoft MCT e MCAS (Excel e Access) 

http://www.mariaproiete.com

Esta resposta foi útil?

10 pessoas acharam esta resposta útil.
0 comentários Sem comentários

4 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2016-03-20T15:50:29+00:00

    Estou procurando resposta para a questão principal (busca independente de acento), mas como contribuição para quem passar nesta página, segue opção para função remove acento que encontrei:

    Function removeAcento(ByVal nome As String) As String

        Dim i As Integer

        Dim p As Integer

        Dim com As String

        Dim sem As String

        com = "àáâãäèéêëìíîïòóôõöùúûüçñÀÁÂÃÄÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÇÑ"

        sem = "aaaaaeeeeiiiiooooouuuucnAAAAAEEEEIIIIOOOOOUUUUCN"

        ' verifica cada letra de nome

        For i = 1 To Len(nome)

            ' se existir em <com>, retornará a posição dela

            p = InStr(com, Mid(nome, i, 1))

            ' substituindo a letra encontrada pela sua correspondente em <sem>

            If p > 0 Then Mid(nome, i, 1) = Mid(sem, p, 1)

        Next

        removeAcento = nome

    End Function

    Esta resposta foi útil?

    2 pessoas acharam esta resposta útil.
    0 comentários Sem comentários
  2. Anônima
    2010-04-16T18:14:00+00:00

    Olá

    Maria

    Obrigado mas a sua eu não poderei usar, pois eu não quero retirar os acentos.

    Quero que ele ignore simplesmente na busca , na procura a existÊncia ou não de acento no nome.

    Exemplo

    se eu pedir para procurar o aluno José Celestino Alcântara ele acha mesmo que eu digite Jose Celestino Alcantara (sem acento).

    Era isso

    grato


    tack så mycket

    Esta resposta foi útil?

    2 pessoas acharam esta resposta útil.
    0 comentários Sem comentários
  3. Anônima
    2010-04-13T14:35:53+00:00

    Vc deve manipular a base e o valor procurado para fazer isto. Só com o procv do jeito que é não dá. VC também poderia tentar criar um procv especial (uma função customizada) que fizesse isso.

    Esta resposta foi útil?

    0 comentários Sem comentários