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

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #22426391
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" 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.
michdenis
Le #22427511
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
--------------------------------------------
Hermon Daniel
Le #22431441
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" 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
--------------------------------------------


michdenis
Le #22431541
Tu as raison, il manque un S à WorksheetS

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

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


"Hermon Daniel" 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" 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
--------------------------------------------


Hermon Daniel
Le #22433161
Bonsoir, et merci pour ton aide.
Cordialement.
"michdenis" 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" 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" 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
--------------------------------------------





Publicité
Poster une réponse
Anonyme