Vous êtes sur la page 1sur 11

Comment calculer le code IBAN

Comment calculer le reste d'une division lorsque le dividende est un nombre très élevé

Par Claude Leloup

Date de publication : 30 novembre 2014

Dernière mise à jour : 11 mars 2018

Deux sujets seront abordés.

Qu'est-ce qu'un code IBAN et comment le calculer avec Access quand on connaît le numéro
du compte dans le pays d'origine ?

Comment contourner les limites de l'opérateur Mod pour calculer le reste d'une division
quand le dividende est trop grand (>2 147 483 647) ?

Commentez
Comment calculer le code IBAN par Claude Leloup

I - Qu'est-ce que le code IBAN ?................................................................................................................................ 3


II - Comment calculer l'IBAN en partant du numéro du compte bancaire d'origine ?................................................. 3
II-A - Convention pour convertir les lettres en chiffres.......................................................................................... 3
II-B - Calculer le reste de la division de ce nombre par 97...................................................................................4
III - Comment contourner la limite 2 147 483 647 pour obtenir le reste d'une division ?............................................ 6
III-A - Petit rappel de la Mat Sup : une division.................................................................................................... 6
III-B - YA+K traduire en VBA !............................................................................................................................... 7
IV - Une fonction pour calculer l'IBAN au départ du numéro bancaire local...............................................................7
IV-A - Le code........................................................................................................................................................ 7
IV-B - Commentaires du code............................................................................................................................... 7
V - Exemples d'utilisation dans un formulaire............................................................................................................. 8
V-A - L'utilisateur introduit le code Pays et le numéro de compte local, le code IBAN s'affiche............................ 8
V-B - L'utilisateur introduit le code IBAN, le contrôle change de couleur.............................................................. 9
VI - Exemple de calcul pour la France..................................................................................................................... 10
VII - Téléchargement................................................................................................................................................. 10
VIII - Remerciements................................................................................................................................................. 11

-2-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2014 Claude Leloup. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://claudeleloup.developpez.com/tutoriels/access/calcul-du-code-iban/
Comment calculer le code IBAN par Claude Leloup

I - Qu'est-ce que le code IBAN ?

Voici la définition qu'en donne Wikipédia :

L'International Bank Account Number (IBAN) est une norme internationale


pour numéroter les comptes bancaires. Elle permet l'identification exacte du
compte et de l'établissement bancaire, ce qui facilite les virements.

Il se compose de trois parties :

II - Comment calculer l'IBAN en partant du numéro du compte bancaire d'origine ?

Le problème se résume à calculer le nombre de contrôle.

Ce « check digit », c'est la différence entre 98 et le reste de la division d'un certain nombre par 97 :

II-A - Convention pour convertir les lettres en chiffres

A vaut 10 et on ajoute 1 pour chaque suivante (Z vaut 35).

Traduit en termes de programmation : c'est le code ASCII de la lettre majuscule - 55.

Soit 66 - 55 pour le « B » et 69 - 55 pour le « E ».

Exemple pour un compte bancaire belge (BE) 210 0765974 17, « le certain nombre » vaut

-3-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2014 Claude Leloup. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://claudeleloup.developpez.com/tutoriels/access/calcul-du-code-iban/
Comment calculer le code IBAN par Claude Leloup

210 076 597 417 111 400

(Je dis : deux cent dix billiards septante-six billions cinq cent nonante-sept milliards quatre cent dix-
sept millions cent onze mille quatre cents.)

II-B - Calculer le reste de la division de ce nombre par 97

Access dispose d'un opérateur Mod qui permet de calculer le reste d'une division.

La syntaxe est :

LeReste = LeDividende Mod LeDiviseur

19 Mod 6 donnera 1.

Dividende et diviseur peuvent être des nombres quelconques, mais pour faire l'opération,
Access va d'abord les convertir en type Entier long. C'est dire que l'opération va échouer si
le dividende est plus grand que 2 147 483 647 !

-4-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2014 Claude Leloup. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://claudeleloup.developpez.com/tutoriels/access/calcul-du-code-iban/
Comment calculer le code IBAN par Claude Leloup

-5-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2014 Claude Leloup. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://claudeleloup.developpez.com/tutoriels/access/calcul-du-code-iban/
Comment calculer le code IBAN par Claude Leloup

III - Comment contourner la limite 2 147 483 647 pour obtenir le reste d'une division ?

III-A - Petit rappel de la Mat Sup : une division

(http://www.mathovore.fr/divisions-et-problemes-cours-maths-45.php)

Ce qui nous intéresse, c'est le reste.

L'algorithme est donc :

er
— on commence par le 1 chiffre gauche du dividende ;

— on calcule le reste de la division de ce chiffre par le diviseur ;

— on y inscrit à sa gauche le chiffre suivant du dividende : c'est comme si on multipliait le reste par 10 et qu'on y
ajoutait le chiffre suivant ;

— on calcule le reste de la division de ce « regroupement » par le diviseur ;

— on inscrit à sa gauche le chiffre suivant du dividende et ainsi de suite, jusqu'à ce qu'on n'ait plus de chiffre à droite.

-6-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2014 Claude Leloup. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://claudeleloup.developpez.com/tutoriels/access/calcul-du-code-iban/
Comment calculer le code IBAN par Claude Leloup

III-B - YA+K traduire en VBA !

Cinq lignes de code :

Function RestePar97(Nbre As String) As Integer


Dim i As Integer
RestePar97 = 0
For i = 0 To Len(Nbre) - 1
RestePar97 = (RestePar97 * 10 + CInt(Mid(Nbre, i + 1, 1))) Mod 97
Next i
End Function

Exemple d'utilisation :

IV - Une fonction pour calculer l'IBAN au départ du numéro bancaire local

IV-A - Le code

1. Public Function BANtoIBAN(CodePays As String, BAN As String) As String


2. Dim i As Integer
3. Dim BaseAlpha As String
4. Dim CleControle As String
5. 'Base de calcul de la clé de contrôle
6. BaseAlpha = BAN & CodePays & "00"
7. 'Conversion des lettres
8. For i = 1 To Len(BaseAlpha)
9. If IsNumeric(Mid(BaseAlpha, i, 1)) Then
10. BANtoIBAN = BANtoIBAN & Mid(BaseAlpha, i, 1)
11. Else
12. BANtoIBAN = BANtoIBAN & Asc(UCase(Mid(BaseAlpha, i, 1))) - 55
13. End If
14. Next i
15. 'Calcul de la clé de contrôle pays
16. CleControle = 98 - RestePar97(BANtoIBAN)
17. 'Retour au format par tranches de 4 caractères
18. BANtoIBAN = Format(UCase(CodePays) & Format(CleControle, "00") & BAN, "!@@@@ @@@@ @@@@ @@@@
@@@@ @@@@ @@@@")
19. End Function

IV-B - Commentaires du code

2-4 : définition de variables.

-7-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2014 Claude Leloup. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://claudeleloup.developpez.com/tutoriels/access/calcul-du-code-iban/
Comment calculer le code IBAN par Claude Leloup

6 : on construit le squelette du code IBAN. À ce stade, il contient des lettres.

8-14 : on parcourt le squelette et on y remplace chaque lettre par son équivalent en chiffres.

16 : le nombre de contrôle est la différence entre 98 et le reste de la division par 97 de la chaîne numérique obtenue
à l'étape précédente.

18 : on habille le résultat.

V - Exemples d'utilisation dans un formulaire

V-A - L'utilisateur introduit le code Pays et le numéro de compte local, le code IBAN s'affiche

Option Compare Database


Option Explicit

Private Sub txtNum_AfterUpdate()


'Contrôle code Pays
If IsNull(Me.txtPays) Then
MsgBox "Code Pays manquant"
Exit Sub
End If

-8-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2014 Claude Leloup. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://claudeleloup.developpez.com/tutoriels/access/calcul-du-code-iban/
Comment calculer le code IBAN par Claude Leloup

'Aménager txtIBAN
Me.txtIBAN = BANtoIBAN(Me.txtPays, Replace(Me.txtNum, " ", ""))
End Sub

V-B - L'utilisateur introduit le code IBAN, le contrôle change de couleur

Option Compare Database


Option Explicit

Private Sub txtIBAN_AfterUpdate()


Me.txtBan = Replace(Right(Me.txtIBAN, Len(Me.txtIBAN) - 4), " ", "")
Me.txtPays = UCase(Left(Me.txtIBAN, 2))
Me.txtIBAN = UCase(Format(Replace(Me.txtIBAN, " ", ""), _
"!@@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@"))
End Sub

C'est dans la mise en forme conditionnelle que cela se passe :

-9-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2014 Claude Leloup. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://claudeleloup.developpez.com/tutoriels/access/calcul-du-code-iban/
Comment calculer le code IBAN par Claude Leloup

VI - Exemple de calcul pour la France

Le « numéro du compte » est la combinaison : code banque + code guichet + n° compte + clé du RIB :

VII - Téléchargement

https://claudeleloup.developpez.com/tutoriels/access/calcul-du-code-iban/IBAN.mdb

- 10 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2014 Claude Leloup. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://claudeleloup.developpez.com/tutoriels/access/calcul-du-code-iban/
Comment calculer le code IBAN par Claude Leloup

VIII - Remerciements

Merci à yahiko, louvamifaly et tee_grandbois pour leurs remarques et à Malick SECK et Maxy35 pour la correction
orthographique.

- 11 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2014 Claude Leloup. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://claudeleloup.developpez.com/tutoriels/access/calcul-du-code-iban/

Vous aimerez peut-être aussi