Bonjour à tous,
Essaie avec ce code (si j'ai bien compris l'histoire de l'arrondi) :
Sub ConvertirFrancEnEuroDansChaine()
Dim i As Byte, Nombre As Double, derlign As Long, ind As Long
Dim Aconvertir As String, NbEnEuros As String
Dim tablo
derlign = [f65000].End(xlUp).Row
tablo = Range("F4:F" & derlign)
For ind = 1 To UBound(tablo)
Aconvertir = Replace(Replace(tablo(ind, 1), ",", "."), " ", "µµ")
For i = 1 To Len(Aconvertir)
If IsNumeric(Mid(Aconvertir, i, 1)) Then
Nombre = Val(Mid(Aconvertir, i, Len(Aconvertir) - i + 1))
NbEnEuros = Application.WorksheetFunction.Round(Nombre / 6.55957 / 5, 0) * 5
Aconvertir = Left(Aconvertir, i - 1) & Replace(Aconvertir, Replace(Nombre, ",", "."), NbEnEuros, i, 1)
i = i + Len(NbEnEuros) - 1
End If
Next
tablo(ind, 1) = Replace(Replace(Aconvertir, "µµ", " "), ".", ",")
Next ind
With Range("G4:G" & derlign)
.NumberFormat = "@"
.Value = tablo
End With
Columns("G:G").EntireColumn.AutoFit
End Sub
Le résultat est copié en colonne G (au cas où !)
Le fichier :