Calcul de l'iban

Soyez le premier à donner votre avis sur cette source.

Snippet vu 34 796 fois - Téléchargée 31 fois

Contenu du snippet

Bonjour,

J'ai vu une personne qui avait mis son soft qui calculais la clé IBAN sur le site et n'as pas voulut donner la formule qui permettait de calculer cette clé.

Je trouve ce genre de pratique très déplorable, le but de ce site est d'apprendre et non de gardé pour soit les ses acquis

C'est donc avec la plus grande joie que je vous donne ici ma méthode pour avoir le compte au format international IBAN

Cette fonction vous retourne donc votre numéro de compte au format IBAN

Source / Exemple :


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, 10) Mod 97 & Cmpt.Substring(10, 2) & "1114") Mod 97 & "00") Mod 97)
        If CIban.Length < 2 Then CIban = "0" & CIban
        
        ' Remplacer le "BE" par "FR" si vous êtes en France
        Return "BE" & CIban & Cmpt

    End Function

Conclusion :


Pour la france cette ligne sera certainement à modifier car je ne sais pas le nombre de chiffre qu'il y a dans un compte bancaire :

CIban = (98 - ((Cmpt.Substring(0, 10) Mod 97 & Cmpt.Substring(10, 2) & "1114") Mod 97 & "00") Mod 97)

Cmpt.Substring(0, 10) = Longeur de la chaine moin 2 caractères
Cmpt.Substring(10, 2) = Reprise des deux dernier chiffre de la chaine

A voir également

Ajouter un commentaire

Commentaires

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....
cs_AbriBus
Messages postés
492
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
25 avril 2007
5
VOILA... nikel c'est ce que je voulais...
10

AbrIban

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.