Eu também uso um Excel com um código de idioma francês e geralmente enfrento esse problema com arquivos CSV. Conforme explicado por outros, os números franceses usam um coma como um separador decimal, e um número como 123.45
é interpretado como um texto pelo Excel.
A maneira mais rápida de contornar isso é substituindo .
por ,
. Você pode fazer isso rapidamente com Localizar / substituir, conforme sugerido por David.
Para aqueles que enfrentam esse problema com bastante frequência, você pode usar este trecho de código ( adaptado desta resposta ), salvá-lo em sua pasta de trabalho PESSOAL e atribuí-lo a um botão na faixa de opções:
Sub Comas2Dots()
Application.ScreenUpdating = False
If (MsgBox("Do you want to replace comas by dots?", vbOKCancel) = vbOK) Then
Const sTEMPCOMMA = "|comma|"
Const sTEMPDOT = "|dot|"
Const sCOMMA = ","
Const sDOT = "."
If TypeName(Selection) = "Range" Then
With Selection
.Replace sCOMMA, sTEMPCOMMA, xlPart
.Replace sDOT, sTEMPDOT, xlPart
.Replace sTEMPCOMMA, sDOT, xlPart
.Replace sTEMPDOT, sCOMMA, xlPart
End With
End If
End If
Application.ScreenUpdating = True
End Sub
Espero que ajude as pessoas que enfrentam esse problema desnecessário!
Documentação adicional
- Como atribuir macros à faixa de opções
- Copie suas macros para uma pasta de trabalho pessoal de macros
,
é o separador decimal, não.
. Assim, valores como123.45
são textos e não podem ser resumidos. Multiplicar por 1 como você sugere também não funcionaria nesse caso, porque não se trata de uma situação de "números armazenados como texto", mas de uma situação de "texto armazenado como texto". Se você substituir pontos por vírgulas, o Excel converterá os textos em números reais (isso só se aplica ao código de idioma francês).