Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

calcul cle iban

2 réponses
Avatar
daniel78
Bonjour,
J'essaye en vain de calculer la cle iban suivant l'exemple donn=E9 sur
wikip=E9dia.

http://fr.wikipedia.org/wiki/ISO_13616

Si quelqu'un a utilis=E9 ce code, peut-il le mettre =E0 disposition pour
que je comprenne mon erreur, ou un autre fichier qui permet ce calcul.
Merci par avance de vos r=E9ponses.
Daniel78

2 réponses

Avatar
h2so4
bonjour,

le code Vba que l'on trouve sur le site semble en effet comporter quelques erreurs.

voici une version corrigée

Function iban(iba As String) As String
If Not iba = "" Then
Texte1 = UCase(iba)
Texte1 = Replace(iba, " ", "")
trib = Right(Texte1, Len(Texte1) - 4)
tCodePays = Left(iba, 2)
iba = tCodePays & "00" & trib
iba = Right(Texte1, Len(Texte1) - 4) & Left(Texte1, 4)
n = 1
While n <= Len(iba)
x = Mid(iba, n, 1)
If Not IsNumeric(x) Then
iba = Replace(iba, x, (Asc(x) - 55), 1, 1)
End If
n = n + 1
Wend
iCodeNum = 98 - Mod97(iba)
If iCodeNum < 10 Then
sCodeStr = "0" & iCodeNum
Else
sCodeStr = iCodeNum
End If
iba = tCodePays & sCodeStr & trib
iban = iba
End If
End Function
Function Mod97(Numero As String) As Integer
Nro = Numero
A = 0
B = 0
C = 0
E = Right(Nro, 6)
D = Mid(Nro, Len(Nro) - 11, 6)
Select Case Len(Nro)
Case 13 To 20
C = CDbl(Mid(Nro, 1, Len(Nro) - 12))
Case 21 To 28
C = CDbl(Mid(Nro, Len(Nro) - 19, 8))
If Len(Nro) <> 20 Then B = CDbl(Mid(Nro, 1, Len(Nro) - 20))
Case 29 To 36
C = CDbl(Mid(Nro, Len(Nro) - 19, 8))
B = CDbl(Mid(Nro, Len(Nro) - 27, 8))
A = CDbl(Mid(Nro, 1, Len(Nro) - 28))
Case Else
Mod97 = "#VALEUR!"
Exit Function
End Select
div97 = Int((A * 93 + B * 73 + C * 50 + D * 27 + E Mod 97) / 97)
Mod97 = (A * 93 + B * 73 + C * 50 + D * 27 + E Mod 97) - div97 * 97
End Function

Sub test()
MsgBox iban("BE00510007547061")
End Sub
Avatar
daniel78
Bonjour et merci,
ça fonctionne très bien.
juste cette ligne à changer
trib = Mid(IBA, 3, tlong), que je connais pas...
et voilà mon souci réglé.
Encore merci.
Peut-être pouvez-vous donner l'info sur wikipédia...

Bonne année 2012

Daniel78