Accueil > > > CALCUL DE RIB
CALCUL DE RIB
Information sur la source
Description
La fonction Clé_Rib fournit la clé La fonction Controle_Clé_Rib contrôle une clé fournie
Source
- 'Module de calcul et de contrôle de clé RIB
- '__________________________________________
- '
- 'Jeux d'essai :
- ' 12345 67890 12345678901 clé => 04
- ' 54321 54321 10987654321 clé => 47
- ' 99999 55555 16589A45566 clé => 63
- ' 20001 75200 12345678901 clé => 05
-
- Option Explicit
-
- Function Calcul_pour_Clé_RIB(ByVal Code_banque As String, ByVal Code_guichet As String, ByVal N°_Compte As String)
- '
- '© Jacques PRESTREAU, 1999
- '
- 'Renvoie False en cas d'erreur
- 'Renvoie un entier en cas de succès
- '
- Dim Compteur1, Reste, N°_Compte_Converti, Valeur_Ascii_Caractère
-
- If Not IsNumeric(Code_banque) Then
- MsgBox "Code banque non numérique"
- Calcul_pour_Clé_RIB = False
- Exit Function
- End If
- If Not IsNumeric(Code_guichet) Then
- MsgBox "Code guichet non numérique"
- Calcul_pour_Clé_RIB = False
- Exit Function
- End If
-
- 'Substitution des Lettres par les chiffres correspondants
-
- N°_Compte_Converti = ""
-
- For Compteur1 = 1 To Len(N°_Compte)
- Valeur_Ascii_Caractère = Asc(Mid$(N°_Compte, Compteur1, 1))
- Select Case Valeur_Ascii_Caractère
- Case Is > 82
- N°_Compte_Converti = N°_Compte_Converti + Chr$(48 + ((Valeur_Ascii_Caractère - 81) Mod 10))
- Case Is > 73
- N°_Compte_Converti = N°_Compte_Converti + Chr$(48 + ((Valeur_Ascii_Caractère - 73) Mod 10))
- Case Is > 57
- N°_Compte_Converti = N°_Compte_Converti + Chr$(48 + ((Valeur_Ascii_Caractère - 64) Mod 10))
- Case Else
- N°_Compte_Converti = N°_Compte_Converti + Chr$(Valeur_Ascii_Caractère)
- End Select
- Next Compteur1
-
- Calcul_pour_Clé_RIB = Val(Code_banque) Mod 97
- Calcul_pour_Clé_RIB = ((Calcul_pour_Clé_RIB * 100000) + Val(Code_guichet)) Mod 97
- Calcul_pour_Clé_RIB = ((Calcul_pour_Clé_RIB * 1000000) + Val(Left$(Format$(N°_Compte_Converti, "00000000000"), 6))) Mod 97
- Calcul_pour_Clé_RIB = ((Calcul_pour_Clé_RIB * 100000) + Val(Right$(Format$(N°_Compte_Converti, "00000000000"), 5))) Mod 97
-
- End Function
-
- Function Controle_Clé_Rib(ByVal Code_banque As String, ByVal Code_guichet As String, ByVal N°_Compte As String, ByVal Clé_Rib As String) As Boolean
- '
- '© Jacques PRESTREAU, 1999
- '
- 'Renvoie False en cas d'erreur
- 'Renvoie True en cas de succès
- '
- Dim Pré_Calcul
-
- Pré_Calcul = Calcul_pour_Clé_RIB(Code_banque, Code_guichet, N°_Compte)
-
- If (Not Pré_Calcul = False) And (((Pré_Calcul * 100) + Val(Clé_Rib)) Mod 97) <> 0 Then
- MsgBox "Clé RIB erronée"
- Controle_Clé_Rib = False
- Else
- Controle_Clé_Rib = True
- End If
-
- End Function
-
- Function Clé_Rib(ByVal Code_banque As String, ByVal Code_guichet As String, ByVal N°_Compte As String)
- '
- '© Jacques PRESTREAU, 1999
- '
- 'Renvoie False en cas d'erreur
- 'Renvoie la clé en String en cas de succès
- '
- Dim Pré_Calcul
-
- Pré_Calcul = Calcul_pour_Clé_RIB(Code_banque, Code_guichet, N°_Compte)
-
- If (Not Pré_Calcul = False) Then
- Clé_Rib = Format$(((97 - Pré_Calcul) * 100) Mod 97, "00")
- End If
-
- End Function
-
'Module de calcul et de contrôle de clé RIB
'__________________________________________
'
'Jeux d'essai :
' 12345 67890 12345678901 clé => 04
' 54321 54321 10987654321 clé => 47
' 99999 55555 16589A45566 clé => 63
' 20001 75200 12345678901 clé => 05
Option Explicit
Function Calcul_pour_Clé_RIB(ByVal Code_banque As String, ByVal Code_guichet As String, ByVal N°_Compte As String)
'
'© Jacques PRESTREAU, 1999
'
'Renvoie False en cas d'erreur
'Renvoie un entier en cas de succès
'
Dim Compteur1, Reste, N°_Compte_Converti, Valeur_Ascii_Caractère
If Not IsNumeric(Code_banque) Then
MsgBox "Code banque non numérique"
Calcul_pour_Clé_RIB = False
Exit Function
End If
If Not IsNumeric(Code_guichet) Then
MsgBox "Code guichet non numérique"
Calcul_pour_Clé_RIB = False
Exit Function
End If
'Substitution des Lettres par les chiffres correspondants
N°_Compte_Converti = ""
For Compteur1 = 1 To Len(N°_Compte)
Valeur_Ascii_Caractère = Asc(Mid$(N°_Compte, Compteur1, 1))
Select Case Valeur_Ascii_Caractère
Case Is > 82
N°_Compte_Converti = N°_Compte_Converti + Chr$(48 + ((Valeur_Ascii_Caractère - 81) Mod 10))
Case Is > 73
N°_Compte_Converti = N°_Compte_Converti + Chr$(48 + ((Valeur_Ascii_Caractère - 73) Mod 10))
Case Is > 57
N°_Compte_Converti = N°_Compte_Converti + Chr$(48 + ((Valeur_Ascii_Caractère - 64) Mod 10))
Case Else
N°_Compte_Converti = N°_Compte_Converti + Chr$(Valeur_Ascii_Caractère)
End Select
Next Compteur1
Calcul_pour_Clé_RIB = Val(Code_banque) Mod 97
Calcul_pour_Clé_RIB = ((Calcul_pour_Clé_RIB * 100000) + Val(Code_guichet)) Mod 97
Calcul_pour_Clé_RIB = ((Calcul_pour_Clé_RIB * 1000000) + Val(Left$(Format$(N°_Compte_Converti, "00000000000"), 6))) Mod 97
Calcul_pour_Clé_RIB = ((Calcul_pour_Clé_RIB * 100000) + Val(Right$(Format$(N°_Compte_Converti, "00000000000"), 5))) Mod 97
End Function
Function Controle_Clé_Rib(ByVal Code_banque As String, ByVal Code_guichet As String, ByVal N°_Compte As String, ByVal Clé_Rib As String) As Boolean
'
'© Jacques PRESTREAU, 1999
'
'Renvoie False en cas d'erreur
'Renvoie True en cas de succès
'
Dim Pré_Calcul
Pré_Calcul = Calcul_pour_Clé_RIB(Code_banque, Code_guichet, N°_Compte)
If (Not Pré_Calcul = False) And (((Pré_Calcul * 100) + Val(Clé_Rib)) Mod 97) <> 0 Then
MsgBox "Clé RIB erronée"
Controle_Clé_Rib = False
Else
Controle_Clé_Rib = True
End If
End Function
Function Clé_Rib(ByVal Code_banque As String, ByVal Code_guichet As String, ByVal N°_Compte As String)
'
'© Jacques PRESTREAU, 1999
'
'Renvoie False en cas d'erreur
'Renvoie la clé en String en cas de succès
'
Dim Pré_Calcul
Pré_Calcul = Calcul_pour_Clé_RIB(Code_banque, Code_guichet, N°_Compte)
If (Not Pré_Calcul = False) Then
Clé_Rib = Format$(((97 - Pré_Calcul) * 100) Mod 97, "00")
End If
End Function
Conclusion
La fonction Clé_Rib fournit la clé La fonction Controle_Clé_Rib contrôle une clé fournie
La fonction Calcul_pour_Clé_RIB est à usage interne des deux autres fonctions
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
calcul des jours fériés [ par fred ]
Je cherche un source sur le calcul des jours fériés. En entree on a une date et on doit savoir en sortie si c'est un jour ferie ou pas.J'attends votre
Calcul binaire [ par kequo ]
peut on faire du calcul binaire avec VB? si oui comment
Pb de calcul [ par thomas ]
Salut,Je fais en ce moment un petit programme sous VB qui me permet de saisir un calcul dans une zone de saisie (text1), par exemple "8+9*36" et je vo
Pb de calcul [ par thomas ]
Salut,Je fais en ce moment un petit programme sous VB qui me permet de saisir un calcul dans une zone de saisie (text1), par exemple "8+9*36" et je vo
Calcul de chiffres à virgule [ par WareG ]
Je doit calculer des sommes à virgule, mais le probleme est le suivant, lorsque je fais la somme par le code suivant j'ai un nombre à virgule beaucoup
calcul a virgule [ par WareG ]
J'ai bien reç votre code pour le calcul de chiffre à virguleDim Var1, Var2 As SingleVar1 = Text1.TextVar2 = Text2.TextText2.Text = (Int((Var1 + Var2)
CALCUL FORMEL [ par mr_schmit ]
Bonjour,Je cherche à dévelloper un prog en VB qui fasse du calcul formel, càd calcul avec des lettres.Si qqun à une idée... @+
Cadre d'objet indépt, feuille de calcul excel [ par Julie ]
En vba, comment insérer des données issues de requête dans une feuille de calcul excel créée dans un formulaire(avec l'outil: cadre d'objet indépendan
Calcul du debit recu et envoyer [ par pirjo ]
Bonjour,Je de dois faire une applic qui doit gerer et detecter la connection.Je voudrais savoir comment calculer,par le biais du modem, le débit recu
Calcul simple de crédit [ par cgelle ]
Je cherche un petit logiciel en vbscript pour effectuer une mini simulation de crédit .Qui peut m'aider ?Merci<td
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|