Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Transformer format numérique anglo saxon aves syst eur^péen

5 réponses
Avatar
Hermon Daniel
Bonsoir,
Suite à une importation d'un fichier csv sous excel2003, j'ai des données en
format texte, représentant des nombres, du style "2,328.25" que je souhaite
transformer en nombres (dans le cas cité 2328,25) afin de pouvoir les
utiliser pour des calculs. J'ai essayé la commande Remplacer (en premier
avec supression de la virgule, en second lieu avec le remplacement du point
par une virgule); cela ne marche pas. Je souhaiterai, si possible, utilise
VBA. Merci pour votre aide, quelle qu'elle soit.
Bien cordialement.

5 réponses

Avatar
michdenis
Bonjour,

Tu adaptes le nom de la feuille et de la plage de cellules.

Évidemment, tu peux modifier le format selon les besoins de ton application.

'-----------------------------
Sub test()
Dim C As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheet("Feuil1")
With Range("A1:A" & Range("A65536").End(xlUp).Row)
.Replace Chr(160), ""
.Replace ",", ""
.Replace ",", "."
.Value = .Value
.NumberFormat = "# ##0.00"
End With
End With
Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub
'-----------------------------

--
MichD
--------------------------------------------


"Hermon Daniel" a écrit dans le message de groupe de discussion :
4c547577$0$9870$
Bonsoir,
Suite à une importation d'un fichier csv sous excel2003, j'ai des données en
format texte, représentant des nombres, du style "2,328.25" que je souhaite
transformer en nombres (dans le cas cité 2328,25) afin de pouvoir les
utiliser pour des calculs. J'ai essayé la commande Remplacer (en premier
avec supression de la virgule, en second lieu avec le remplacement du point
par une virgule); cela ne marche pas. Je souhaiterai, si possible, utilise
VBA. Merci pour votre aide, quelle qu'elle soit.
Bien cordialement.
Avatar
michdenis
Oups, j'ai omis les "."(points) devant les 2 objets "Range"

La macro devrait se lire comme suit :
'---------------------------
Sub test()
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheet("Feuil1")
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.Replace Chr(160), ""
.Replace ",", ""
.Replace ",", "."
.Value = .Value
.NumberFormat = "# ##0.00"
End With
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------
--
MichD
--------------------------------------------
Avatar
Hermon Daniel
Bonjour et merci pour la réponse. Petit problème lors de d'exécution de ta
macro. En ligne 3, le mot Workshhet provoque une erreur de compilation (sub
ou fonction non définie). Etant plutôt débutant en VBA, pourrais tu
rectifier la macro ? Merci par avance. Cordialement.
"michdenis" a écrit dans le message de news:
i33i9k$up7$
Oups, j'ai omis les "."(points) devant les 2 objets "Range"

La macro devrait se lire comme suit :
'---------------------------
Sub test()
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheet("Feuil1")
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.Replace Chr(160), ""
.Replace ",", ""
.Replace ",", "."
.Value = .Value
.NumberFormat = "# ##0.00"
End With
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------
--
MichD
--------------------------------------------


Avatar
michdenis
Tu as raison, il manque un S à WorksheetS

Modifie comme ceci : With WorksheetS("Feuil1")
en adaptant le nom de la feuille

--
MichD
--------------------------------------------


"Hermon Daniel" a écrit dans le message de groupe de discussion :
4c56a391$0$10099$
Bonjour et merci pour la réponse. Petit problème lors de d'exécution de ta
macro. En ligne 3, le mot Workshhet provoque une erreur de compilation (sub
ou fonction non définie). Etant plutôt débutant en VBA, pourrais tu
rectifier la macro ? Merci par avance. Cordialement.
"michdenis" a écrit dans le message de news:
i33i9k$up7$
Oups, j'ai omis les "."(points) devant les 2 objets "Range"

La macro devrait se lire comme suit :
'---------------------------
Sub test()
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheet("Feuil1")
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.Replace Chr(160), ""
.Replace ",", ""
.Replace ",", "."
.Value = .Value
.NumberFormat = "# ##0.00"
End With
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------
--
MichD
--------------------------------------------


Avatar
Hermon Daniel
Bonsoir, et merci pour ton aide.
Cordialement.
"michdenis" a écrit dans le message de news:
i369i8$j87$
Tu as raison, il manque un S à WorksheetS

Modifie comme ceci : With WorksheetS("Feuil1")
en adaptant le nom de la feuille

--
MichD
--------------------------------------------


"Hermon Daniel" a écrit dans le message de groupe de
discussion :
4c56a391$0$10099$
Bonjour et merci pour la réponse. Petit problème lors de d'exécution de ta
macro. En ligne 3, le mot Workshhet provoque une erreur de compilation
(sub
ou fonction non définie). Etant plutôt débutant en VBA, pourrais tu
rectifier la macro ? Merci par avance. Cordialement.
"michdenis" a écrit dans le message de news:
i33i9k$up7$
Oups, j'ai omis les "."(points) devant les 2 objets "Range"

La macro devrait se lire comme suit :
'---------------------------
Sub test()
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheet("Feuil1")
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.Replace Chr(160), ""
.Replace ",", ""
.Replace ",", "."
.Value = .Value
.NumberFormat = "# ##0.00"
End With
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------
--
MichD
--------------------------------------------