Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, tablo, i As Long, t
Set r = Intersect(Target, [B3:B3000])
If Not r Is Nothing Then
tablo = Range(r, r(2)) 'au moins 2 cellules
For i = 1 To UBound(tablo)
t = tablo(i, 1)
If Not (IsEmpty(t) Or IsError(t)) Then _
If IsNumeric(Replace(t, ".", ",")) _
Or IsNumeric(Replace(t, ",", ".")) _
Then tablo(i, 1) = Val(Replace(t, ",", "."))
Next
Application.EnableEvents = False
r = tablo
Application.EnableEvents = True
End If
End Sub