eric leissler France Membre Simple # 0000002784 enregistré le 06/03/2010 http://www.aumeric.fr 68 ans LEISSLER Eric 85290 MORTAGNE SUR SEVRE de la société AUMERIC LOGICIELS Fiche personnelle
Note des membres pas de note
Contributions > 01 - PRG : Programmation > Calculs de clefs et Checksums (rib, iban, ...)
calcul de cle rib et de cle iban
# 0000000716
ajouté le 02/09/2009 10:47:38 et modifié le 24/05/2010
consulté 12758 fois
Niveau
débutant
Function calculclerib(sCodeBanque As Variant, sCodeSiege As Variant, sNoCompte As Variant)
LOCAL CodeBanque AsString LOCAL tCodeSiege AsString LOCAL tNoCompte AsString
LOCAL in_A As Variant LOCAL in_B As Variant LOCAL in_C As Variant LOCAL in_D As Variant LOCAL in_E As Variant LOCAL in_F As Variant LOCAL in_G As Variant LOCAL in_H As Variant
tCodeBanque = lirenombre(sCodeBanque)
tCodeSiege = lirenombre(sCodeSiege)
tNoCompte = lirenumerocompte(sNoCompte) IfLen(tCodeBanque) <> 5 Then MESSAGEBOX( "Le Code Banque n'a pas 5 caractères", vbCritical, Trim(sCaption))
calculclerib = "" ExitFunction EndIf IfLen(tCodeSiege) <> 5 Then MESSAGEBOX("Le Code Guichet n'a pas 5 caractères", vbCritical, Trim(sCaption))
calculclerib = "" ExitFunction EndIf IfLen(tNoCompte) > 11 Then MESSAGEBOX("Le Numéro de Compte est trop long, il ne doit pas comporter plus de 11 caractères", vbCritical, Trim(sCaption))
calculclerib = "" ExitFunction EndIf
in_A = cvar(tCodeBanque)
in_B = cvar(tCodeSiege)
in_C = cvar(tNoCompte)
in_D = 8 * in_A
in_A = calculmodulo(in_D, 97)
in_E = 15 * in_B
in_B = 97 - calculmodulo(in_E, 97)
in_F = 3 * in_C
in_C = 97 - calculmodulo(in_F, 97)
in_G = in_A + in_B + in_C
in_H = MOD(in_G,97)
calculclerib = IIf(in_H = 0, 97, in_H) RETURN calculclerib EndFunc
Function Calculcleiban(sCodePays AsString, sRib AsString)
LOCAL tCodePays AsString LOCAL tRib AsString LOCAL tConcat AsString LOCAL in_i AsInteger LOCAL sRetenue As Variant LOCAL sCle As Variant LOCAL iNbInterm As Variant LOCAL sStrInterm As Variant LOCAL iCodeNum AsInteger LOCAL sCodeStr AsString LOCAL tIBAN AsString
Function FormatRib(sCodeBanque AsString, sCodeGuichet AsString, sNoCompte AsString, sCleRib AsString)
LOCAL tCodeBanque AsString LOCAL tCodeGuichet AsString LOCAL tNoCompte AsString LOCAL tCleRib AsString LOCAL tCodeStr AsString LOCAL tRib AsString LOCAL iNbCleRib AsInteger