Hello Tulipe !
Il me semble avoir vu qu'il fallait multiplier par 2 les chiffres de rang pair en partant de la fin, ce que tu fais lorsque le résultat est supérieur à 9 mais pas lorsqu'il est inférieur.
Essai en fonction personnalisée (l'idée d'une matricielle a réveillé ma fatigue... )
Function CHECKLUHN(ident) As Boolean
Dim Tid() As Integer, n%, i%, a%
n = Len(ident): ReDim Tid(n - 1)
For i = 1 To n
Tid(i - 1) = CInt(Mid(ident, i, 1))
Next i
a = IIf(n Mod 2, 1, 0)
For i = a To n - 1 Step 2
Tid(i) = IIf(Tid(i) * 2 > 9, Tid(i) * 2 - 9, Tid(i) * 2)
Next i
n = WorksheetFunction.Sum(Tid)
CHECKLUHN = IIf(n Mod 10, False, True)
End Function
Cordialement.
edit : Mal réveillé aussi ! J'ai rectifié...