Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, Columns(1), UsedRange)
If Target Is Nothing Then Exit Sub
Dim x$, y$, n%, i%, z$
Application.EnableEvents = False 'désactive les évènements
Columns(1).NumberFormat = "@" 'format Texte
For Each Target In Target 'si entrées multiples
x = Target: y = "": n = 0
For i = 1 To Len(x)
z = Mid(x, i, 1)
If IsNumeric(z) Then
n = n + 1
y = y & z
If n = 10 Then Exit For 'limite
End If
Next i
If y <> "" Then If Len(y) < 10 Then y = String(10 - Len(x), "0") & y
Target = y
Next Target
Application.EnableEvents = True 'réactive les évènements
End Sub