Function ControleIban(LeNumIban As String) As Boolean
Dim x As String
LeNumIban = Replace(LeNumIban, " ", "")
LeNumIban = Right(LeNumIban, Len(LeNumIban) - 4) & Left(LeNumIban, 4)
For n = 1 To Len(LeNumIban)
x = Mid(LeNumIban, n, 1)
If Not IsNumeric(x) Then
LeNumIban = Replace(LeNumIban, x, convIBAN(x))
End If
Next n
B = CDbl(Left(LeNumIban, 8))
C = CDbl(Mid(LeNumIban, 9, 8))
D = CDbl(Mid(LeNumIban, 17, 8))
E = CDbl(Right(LeNumIban, Len(LeNumIban) - 24))
If Len(LeNumIban) = 30 Then ' cas de La Poste ( 1 lettre dans le Numéro de compte)
num = (B * 25 + C * 53 + D * 27 + E Mod 97)
Else
If Len(LeNumIban) = 29 Then 'cas de numero français sans aucune lettre
num = (B * 51 + C * 15 + D * 90 + E Mod 97)
End If
End If
div = Int(num / 97)
If num - div * 97 = 1 Then
ControleIban = True
Else
ControleIban = False
End If
End Function