• Initiateur de la discussion Initiateur de la discussion yvon51
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Y

yvon51

Guest
bonjour le forum

quelqu'un sait-il quel est le calcul pour trouver la clé d'un compte banquaire ou num sécurité sociale.

merci
yvon
 
Bonjour Yvon,

Pour un N° de Sécurité Sociale (En A1):

=97-MOD((MOD(CNUM(STXT(A1;1;7));97)*27)+(MOD(CNUM(STXT(A1;8;6));97));97)

Pour une clé RIB, j'ai quelque chose mais en javascript, il faut que je te le traduise en Excel. Ce soir si je peux.

A+

José
 
Bonjour le forum
Bonjour Yvon, bonjour José

Pour que José aille plus vite faire un t'chiot Quizzzzzzzzzzzz (Amicalement)
'Module de calcul et de contrôle de clé RIB
'
'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
'__________________________________________
'
'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



Non testé pour ma part.
@ ++ Eric C
 
bonjour le forum, josé, éric

ah! ben dis donc, ça spide un max et bon, même très bon.

josé, j'ai essayé pour la sécu, c'est ok et merci beaucoup.

éric, je vais utiliser ton aide aujourd'hui et je te remercie vivement.
ùais dis-moi STP, est-ce l'explication de la fonction que tu as mis en "option Explicit"?

bonne journée à tous
yvon
 
Bonjour Yvon, Eric,

La fonction Clé_Rib n'esiste pas sur excel, c'est une fonction créée de toutes pièces dans le code donné par Eric. Il faut que tu la copies dans un module VBA.

Autrement, je te joins un fichier avec calcul par formule, seulement comme faire tout tenir en une seule formule serait trop long et complexe à comprendre, le calcul lest décomposé en étapes. Si tu as du mal (comme moi arf !), n'hésite pas.

Bonne journée,

José
 

Pièces jointes

Bonjour le forum
Bonjour Yvon & José

Désolé pour ma lenteur mais je "bosse" plus lorsque je suis en congé. J'ai trouvé ceci qui devrait t'intéresser <http://etienne.chouard.free.fr/Documents/TelDocExcel.htm>
@ ++ Eric C
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
402
Réponses
1
Affichages
77
Réponses
33
Affichages
1 K
D
  • Question Question
Réponses
5
Affichages
98
Didierpasdoué
D
Retour