Quando uso localizar e substituir para, por exemplo "." -> "/" ele troca 03.09.2025 para 09/03/2025

Jay3vírgula14 20 Pontos de reputação
2025-09-17T12:33:27.39+00:00

Quando pego dados de um sistema, ele me fornece em pontos: 03.09.2025 por exemplo.

Portanto, decidi gravar uma macro que altera "." por "/" para fica no modelo convencional, no entano, quando rodo essa macro, ela substitui corretamente, mas inverte o dia com o mês (nesse caso ficaria 09/03/2025). Já tentei alterar a formatação das células mas nada funciona. Ainda assim, quando utilizo o substituir fora da macro ele funciona normalmente.

Alguém tem alguma ideia?

Já agradeço de antemão!

Microsoft 365 e Office | Excel | Para Educação | Windows
0 comentários Sem comentários

Resposta aceita pelo autor da pergunta
Alina-Le 6,395 Pontos de reputação Equipe Externa da Microsoft Moderador
2025-09-17T13:47:03.0666667+00:00

"Esta resposta foi traduzida automaticamente. Portanto, pode conter erros gramaticais ou frases incomuns..."

Olá @Jay3vírgula14

Bem-vindo ao fórum de perguntas e respostas!

Com base na minha pesquisa, isso acontece porque o Excel tenta adivinhar o formato da data com base nas configurações regionais do seu sistema. Em muitos sistemas, especialmente nos EUA, as datas são interpretadas como MM/DD/AAAA. Portanto, quando o Excel vê 03/09/2025, ele pensa que é 9 de março, não 3 de setembro.

Além disso, quando você faz isso manualmente, o Excel não reprocessa a célula, apenas substitui o caractere. Mas, em uma macro, o Excel pode recalcular ou reformatar a célula após a alteração, o que aciona a interpretação automática da data.

Eu testei isso por conta própria e você pode tentar o seguinte código para preservar o formato original da data:

Sub ReplaceDotsWithSlashes()

    Dim cell As Range

    For Each cell In Selection

        If cell.HasFormula = False Then

            Dim originalText As String

            originalText = cell.Text

            If InStr(originalText, ".") > 0 Then

                cell.NumberFormat = "@"

                cell.Value = Replace(originalText, ".", "/")

            End If

        End If

    Next cell

End Sub

Por favor, experimente e me diga o que achou. Se o problema persistir, tentarei dar uma olhada para ajudar você novamente.

Agradeço sua compreensão e gentileza neste assunto.


Se a resposta for útil, clique em "Aceitar Resposta" e, por favor, vote positivamente. Se tiver mais perguntas sobre esta resposta, clique em "Comentar".

Observação: siga as etapas em nossa documentação para ativar as notificações por e-mail se desejar receber notificações por e-mail relacionadas a este tópico. Aceitar respostao que1 resposta

Esta resposta foi útil?


0 respostas adicionais

Classificar por: Mais útil

Sua resposta

As respostas podem ser marcadas como ‘Aceitas’ pelo autor da pergunta e ‘Recomendadas’ pelos moderadores, o que ajuda os usuários a saber a resposta que resolveu o problema do autor.