Option Explicit
Sub Test()
Dim NEntré As Long, N As Long, Z As String
NEntré = 1: Do
Z = CodeMNC(NEntré)
CodeMNC(N) = Z
Z = InputBox("Z = CodeMNC(" & NEntré & ")" & vbLf & vbTab & "==> Z reçoit """ & Z & """, classique," & vbLf _
& "CodeMNC(N) = """ & Z & """" & vbLf & vbTab & "==> Là c'est N qui reçoit " & N & "." & vbLf _
& vbLf & "Entrez un autre nombre.", "Test"):
If IsNumeric(Z) Then NEntré = Z Else Exit Sub
Loop
End Sub
Property Get CodeMNC(Nbr As Long) As String
Dim N As Long, N1 As Long, NZ As Long
N = Nbr
Do While N > 0
N1 = N Mod 10
If N1 = 0 Then
NZ = NZ + 1
Else
CodeMNC = Mid$("MNCLKJTVD", N1, 1) & IIf(NZ > 0, NZ, "") & CodeMNC
NZ = 0
End If
N = N \ 10
Loop
End Property
Property Let CodeMNC(Nbr As Long, ByVal Z As String)
Dim P As Long, C As String * 1
Nbr = 0
For P = 1 To Len(Z)
C = Mid$(Z, P, 1)
If IsNumeric(C) Then
Nbr = Nbr * 10 ^ C
Else
Nbr = Nbr * 10 + InStr("MNCLKJTVD", C)
End If: Next P
End Property