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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|