Convertion

J

julien

Guest
Bonjour,

je récupère des infos de SAP (pour ce qui connaissent...) et j'obtiens le format numérique suivant :
1.936,52 pour les nombres > à 1000.

Un simple rechercher/remplacer permet de supprimer le point.

Si je fais la même manip au sein d'une macro, excel remplace tout y compris la virgule.

(Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False)

Y a-t-il un code particulier pour résoudre ce problème ?

Je travaille avec Excel2000

Merci pour vos réponses
 
T

Ti

Guest
Tu peux utiliser la fonction suivante pour supprimer le point. Mais tu remarqueras qu'ensuite la virgule est elle-même remplacée par un point parce que VBA ne cause qu'anglais et si tu lui laisses les virgules, il ne les voudra pas. Par contre, une fois ces valeurs réinjectées dans les cellules, tu reverras bien ta virgule !

Private Function SupprimePoint(Valeur)
'Ti 23-12-02
Dim Ofs As Long
Valeur = CStr(Valeur)
Do
Ofs = InStr(1, Valeur, ".")
If Ofs > 0 Then Valeur = Left(Valeur, Ofs - 1) & Mid(Valeur, Ofs + 1)
Loop Until Ofs = 0
Do
Ofs = InStr(1, Valeur, ",")
If Ofs > 0 Then Valeur = Left(Valeur, Ofs - 1) & "." _
& Mid(Valeur, Ofs + 1)
Loop Until Ofs = 0
SupprimePoint = Val(Valeur)
End Function

Sub Test()
Dim Cel As Range, Plage As Range
Set Plage = Range("A1:C5")
For Each Cel In Plage
If Cel.Value <> "" Then Cel.Value = SupprimePoint(Cel.Value)
Next Cel
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 097
Messages
2 085 257
Membres
102 840
dernier inscrit
blaise09