Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, t As String
Set r = Intersect(Target, [A:A], Me.UsedRange) 'colonne A
If r Is Nothing Then Exit Sub
For Each r In r 'en cas d'entrées mutiples
If Not r.Text Like "?? #### *" Then
t = Replace(r.Text, " ", "")
If t Like "??####*" Then
t = Application.Replace(t, 3, , " ")
r = Application.Replace(t, 8, , " ")
End If
End If
Next
End Sub