Private Sub Worksheet_Change(ByVal Target As Range)
Dim source As Range, dest As Range, t, i%, j%, n$, k As Variant
Set source = [D1]: Set dest = [D24] 'cellules à adapter
t = " " & source
For i = Len(t) To 2 Step -1
If Not IsNumeric(Mid(t, i + 1, 1)) And IsNumeric(Mid(t, i, 1)) Then j = i
If IsNumeric(Mid(t, i, 1)) And Not IsNumeric(Mid(t, i - 1, 1)) Then
n = Mid(t, i, j + 1 - i)
k = Application.Match(Val(n), Columns(1), 0)
If IsNumeric(k) Then t = Left(t, i - 1) & Cells(k, 2) & Mid(t, i + Len(n))
End If
Next
Application.EnableEvents = False: dest = Mid(t, 2): Application.EnableEvents = True
End Sub