Sub remplace_2()
Dim C As Range, Tmp As Variant
Application.ScreenUpdating = False
For Each C In ActiveSheet.UsedRange
Tmp = Replace(C.Value, Chr(160), "")
If IsNumeric(Tmp) Then
C.NumberFormat = "#,##0.00"
Tmp = CDbl(Tmp)
ElseIf InStr(Tmp, " %") > 0 Then
Tmp = Replace(Tmp, " %", "") / 100
C.NumberFormat = "0.00%"
Tmp = CDbl(Tmp)
End If
C.Value = Tmp
Next C
Application.ScreenUpdating = True
End Sub