OVH Cloud OVH Cloud

Clé RIB

4 réponses
Avatar
Surcouf
Je dois saisir plusieurs centaines de numéro de comptes bancaires dans un
formulaire et je souhaiterai vérifier la validité de ma saisie à l'aide de la
clé RIB.
Est ce que, par un heureux hasard, quelqu'un aurait déjà développé une
fonction permettant ce contrôle ?
Merci

4 réponses

Avatar
Hervé DUCARNE
Salut !
Une ptite recherche google qui donne ça :
http://www.vbfrance.com/code.aspx?IDR0

@+

"Surcouf" a écrit dans le message de
news:
Je dois saisir plusieurs centaines de numéro de comptes bancaires dans un
formulaire et je souhaiterai vérifier la validité de ma saisie à l'aide de
la

clé RIB.
Est ce que, par un heureux hasard, quelqu'un aurait déjà développé une
fonction permettant ce contrôle ?
Merci


Avatar
Surcouf
Merci

Super ce site vbfrance !

"Hervé DUCARNE" wrote:

Salut !
Une ptite recherche google qui donne ça :
http://www.vbfrance.com/code.aspx?IDR0

@+

"Surcouf" a écrit dans le message de
news:
Je dois saisir plusieurs centaines de numéro de comptes bancaires dans un
formulaire et je souhaiterai vérifier la validité de ma saisie à l'aide de
la

clé RIB.
Est ce que, par un heureux hasard, quelqu'un aurait déjà développé une
fonction permettant ce contrôle ?
Merci







Avatar
3stone
Salut,

"Surcouf"
| Je dois saisir plusieurs centaines de numéro de comptes bancaires dans un
| formulaire et je souhaiterai vérifier la validité de ma saisie à l'aide de la
| clé RIB.
| Est ce que, par un heureux hasard, quelqu'un aurait déjà développé une
| fonction permettant ce contrôle ?


Regarde ici :
http://users.skynet.be/accesshome/vrac.htm#CleRib


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Pierre
Voici une fonction "maison" qui calcule la clé à partir d'un compte bancaire
sur 21 positions.

********************************************************
Public Function CalculCléRib(sRib As String) As String

Dim I As Integer
Dim sBanque As String * conLngBqe
Dim sGuichet As String * conLngGui
Dim sCompte As String * conLngCpt
Dim sClé As String * 2
Dim dblPref As Double
Dim lngCompte As Long
Dim iClé As Integer
Dim dblCalc As Double
Dim dblTemp As Double
Dim Z1 As String * 15
Dim Z2 As String
Dim sTmp As String * 15
Dim X As Variant
Dim Y As Variant

CalculCléRib = "Err"

If Len(Trim(sRib)) <> 21 Then
CalculCléRib = "Err"
Exit Function
End If

sBanque = Left(Trim(sRib), 5)
If Not IsNum(sBanque) Then
CalculCléRib = "Err"
Exit Function
End If
sGuichet = Mid(Trim(sRib), 6, 5)
If Not IsNum(sGuichet) Then
CalculCléRib = "Err"
Exit Function
End If
sCompte = Trim(Mid(sRib, 11, 11))
If Not IsAlphaNum(sCompte) Then
CalculCléRib = "Err"
Exit Function
End If

dblCalc = CDbl(sBanque & sGuichet)

Z2 = CStr(CDbl(sBanque & sGuichet) / 97)
'on ne garde que la partie entière de Z2
If InStr(Z2, gDécimal) <> 0 Then
dblPref = CDbl(Left(Z2, InStr(Z2, gDécimal)))
Else
dblPref = CDbl(Z2)
End If

'dblPref : on ne garde que le reste de la division par 97
dblTemp = dblPref * 97
dblPref = CDbl(sBanque & sGuichet) - dblTemp

For I = 1 To Len(sCompte)
Select Case UCase(Mid(sCompte, I, 1))
Case "A", "J"
Mid(sCompte, I, 1) = 1
Case "B", "K", "S"
Mid(sCompte, I, 1) = 2
Case "C", "L", "T"
Mid(sCompte, I, 1) = 3
Case "D", "M", "U"
Mid(sCompte, I, 1) = 4
Case "E", "N", "V"
Mid(sCompte, I, 1) = 5
Case "F", "O", "W"
Mid(sCompte, I, 1) = 6
Case "G", "P", "X"
Mid(sCompte, I, 1) = 7
Case "H", "Q", "Y"
Mid(sCompte, I, 1) = 8
Case "I", "R", "Z"
Mid(sCompte, I, 1) = 9
End Select
Next

iClé = 0

Do
sTmp = Format$(dblPref, "00") & sCompte & Format$(iClé, "00")
If Not IsNum(sTmp) Then
CalculCléRib = "Err"
Exit Function
End If
Z2 = CStr(CDbl(sTmp) / 97)
If InStr(Z2, gDécimal) <> 0 Then
dblCalc = CDbl(Left(Z2, InStr(Z2, gDécimal)))
Else
dblCalc = CDbl(Z2)
End If
dblTemp = dblCalc * 97
dblCalc = CDbl(sTmp) - dblTemp
If dblCalc = 0# Then
If iClé = 0 Then
iClé = 97
End If
CalculCléRib = Format$(iClé, "00")
Exit Function
End If

iClé = iClé + 1
If iClé > 97 Then
CalculCléRib = "Err"
Exit Function
End If

Loop While True

End Function
********************************************************

Cordialement.


Pierre




"3stone" a écrit dans le message de
news:%
Salut,

"Surcouf"
| Je dois saisir plusieurs centaines de numéro de comptes bancaires dans
un

| formulaire et je souhaiterai vérifier la validité de ma saisie à l'aide
de la

| clé RIB.
| Est ce que, par un heureux hasard, quelqu'un aurait déjà développé une
| fonction permettant ce contrôle ?


Regarde ici :
http://users.skynet.be/accesshome/vrac.htm#CleRib


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw