CALCUL DE L'IBAN

Signaler
Messages postés
185
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
10 janvier 2008
-
arkosii
Messages postés
1
Date d'inscription
mercredi 4 juin 2003
Statut
Membre
Dernière intervention
14 novembre 2010
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/32359-calcul-de-l-iban

arkosii
Messages postés
1
Date d'inscription
mercredi 4 juin 2003
Statut
Membre
Dernière intervention
14 novembre 2010

J'ai modifié le code syka ainsi :

Public Function Iban(ByVal Cmpt As String) As String
' Calcul de la clé IBAN
Dim CIban As String
Cmpt = Replace(Cmpt, "-", String.Empty) ' Suppression des - dans le compte
CIban = 98 - ((((((Cmpt.Substring(0, 9) Mod 97) & Cmpt.Substring(9, 7)) Mod 97) & Cmpt.Substring(16, 7)) Mod 97 & "1527") Mod 97 & "00") Mod 97

If CIban.Length < 2 Then CIban = "0" & CIban
' Remplacer le "BE" par "FR" si vous êtes en France
Dim c As String = String.Empty
For i As Integer = 0 To Cmpt.Length - 4 Step 4
c += Cmpt.Substring(i, 4) + "-"
Next

Return "FR" & CIban & "-" & c & Cmpt.Substring(20, 3)
End Function

et j'obtiens la bonne valeur EBAN.
cs_syka
Messages postés
1
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
10 juin 2010

Modifier comme celà pour la france :

Dim CIban As String
Cmpt = Replace(Cmpt, "-", String.Empty) ' Suppression des - dans le compte
CIban = (98 - ((cmpt.Substring(0, 21) Mod 97 & cmpt.Substring(21, 2) & "1527") Mod 97 & "00") Mod 97)
If CIban.Length < 2 Then CIban = "0" & CIban

Return "FR" & CIban & cmpt

Et au final, ne fonctionne pas.

Il semblerait que le problème est à voir avec la longueur du RIB francais : 23 Numérique, ce qui met une variable de type long en overflow et l'opérateur Mod ne fonctionne donc pas correctement.
rolfdiensten
Messages postés
1
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2008

Salut,

Attention pour la France, il faut remplacer "1114" (code pays BE) par "1527" (code pays FR) dans la formule, sinon ca ne marche pas.

J'en profite pour rajouter aussi que l'IBAN français à 23 chiffres après les quatre premiers caractères FRXX .

Merci pour le code :-)
cs_bouksim
Messages postés
5
Date d'inscription
mercredi 22 juin 2005
Statut
Membre
Dernière intervention
8 juillet 2006

salut je me suis un etudiant en developpement informatique , j'etudie vb.net et je me suis tres intresser a ce langage pouvez vous m'envoyez un cours qui est riche en informations? pour que je puisse completer mon projet et le disposer dans ce site....