Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
  • Avatar do usuário
Avatar do usuário
Por FelipeBarbosa
Posts Avatar
#25520
Bom dia Srs!

Estou com um problema com uma planilha que tem conexão com um banco de dados Online do Google Docs e quando vem as informações, os caracteres vem de uma forma alterada devido acentuações.

Teria como fazer uma macro para corrigir esses textos quando há uma nova atualização dos dados?

Segue anexo planilha de exemplo.

Desde já agradeço.
Você não está autorizado a ver ou baixar esse anexo.
Por BetoSSena
Posts
#25521
Felipe,

Você pode gravar uma VBA simples de substituição.
Daria um trabalho inicial, porém, seria uma única vez.

exemplo abaixo.

Cells.Replace What:="Análise", Replacement:="Análise", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

teria que fazer uma para cada um.
Avatar do usuário
Por FelipeBarbosa
Posts Avatar
#25541
Beto, obrigado.

Porém o problema é que vem sempre palavras novas, é uma planilha que tem conexão com um banco de dados online e atualiza sempre.

Teria algum código que já englobasse boa parte dos erros?
Por BetoSSena
Posts
#25545
Felipe,

Poderia criar uma formula no VBA, para tirar os acentos, porém, teria uma aba parar tratar o arquivo e posteriormente trabalhar com ele.
Function TiraAcento(Palavra)

CAcento = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ"
SAcento = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"
Texto = ""
If Palavra <> "" Then
For X = 1 To Len(Palavra)
Letra = Mid(Palavra, X, 1)
Pos_Acento = InStr(CAcento, Letra)
If Pos_Acento > 0 Then
Letra = Mid(SAcento, Pos_Acento, 1)
End If
Texto = Texto & Letra
Next
TiraAcento = Texto
End If
End Function
Avatar do usuário
Por Reinaldo
Avatar
#25550
A UDF proposta pelo colega BetoSSena funciona muito bem substituindo caractere ASCII acentuado pelos seus "pares" sem acento.
Numa rápida analise em seu modelo, o problema aparenta ser que o mapa de caractere do Google não reconhece os acentuados ASC; e os substitui por combinações de caracteres; por exemplo : ó aparenta ser ó; assim e necessário montar/trocar na UDF essa cadeia de substituição
Avatar do usuário
Por wesleyribeiro123
Posts Avatar
#25577
Felipe
Bom dia,

Brother, uma solução simples seria criar um mapa de relação entre o caractere correto vs "caractere errado"...
Seria algo tipo este que está no anexo...

Veja se te atende!!!
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por FelipeBarbosa
Posts Avatar
#25669
Wesley muito obrigado pela solução.

Obrigado a todos. Mas essa do Wesley se encaixa melhor no meu cotidiano.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord