Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

calculer clé RIB

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 !

eastwick

XLDnaute Accro
Bonjour à toutes et tous,

J'aimerais une petite formule qui va bien pour me déterminer la clé RIB d'un compte.
J'en ai déjà une, mais elle ne fonctionne pas avec les comptes qui ont une lettre (style LCL ou CCP).
Je suis preneur pour un code VBA, pas de souci.
On peut considérer que mes codes banque, guichet et numéro de compte sont en A1, B1 et C1.

En vous remerciant vivement !!!!
 
Bonjour,

essaye cela
VB:
' =================================================================================================
'  RIB  |
' =================================================================================================
Function RIB(no As String)  ' no = numero de compte a 21 chiffres (ou lettre)
  Dim num As String
  num = no
  For n = 1 To Len(num)
  If Mid(num, n, 1) <> " " And Not IsNumeric(Mid(num, n, 1)) Then
  num = Replace(num, Mid(num, n, 1), convRIB(Mid(num, n, 1)))
  End If
  Next n
  X = Split(num, " ")
  b = CDbl(X(0))
  g = CDbl(X(1))
  d = CDbl(Left(X(2), 6))
  C = CDbl(Right(X(2), 5))
  RIB = 97 - ((89 * b + 15 * g + 76 * d + 3 * C) Mod 97)
  If Len(RIB) = 1 Then RIB = "0" & RIB
  RIB = CStr(RIB)
End Function
' =================================================================================================
'  CONTROLE COMPTE  |
' =================================================================================================
Function CtrlNoCompte(Compte) As String
  If IsEmpty(Compte) Then Exit Function
  If IsNumeric(Compte) Then
  i = Int(Compte / 100)  ' ............................................................10 premiers chiffres
  digit = Compte - i * 100  ' .........................................................2 derniers chiffres
  ' reste de la division
  reste = i - Int(i / 97) * 97
  If reste = 0 Then reste = 97
  If reste <> digit Then
  CtrlNoCompte = "compte bancaire incorrect"
  Else
  CtrlNoCompte = "OK"
  End If
  Else
  CtrlNoCompte = "compte bancaire incorrect"
  End If
End Function

Cordialement
 
Bonjour à tous,

Voilà une formule matricielle (à valider par CTRL+MAJ+ENTER) :
VB:
=97-MOD(89*A1+15*B1+3*(SIERREUR(GAUCHE(C1;-1+MIN(SI(STXT(C1;LIGNE($1:$11);1)>="A";LIGNE($1:$11);9^9)))&MOD(CODE(STXT(C1;MIN(SI(STXT(C1;LIGNE($1:$11);1)>="A";LIGNE($1:$11);9^9));1))-65;9)+1+(STXT(C1;MIN(SI(STXT(C1;LIGNE($1:$11);1)>="A";LIGNE($1:$11);9^9));1)>"S")&DROITE(C1;11-MIN(SI(STXT(C1;LIGNE($1:$11);1)>="A";LIGNE($1:$11);9^9)));C1));97)

Elle fonctionne pour des comptes avec une lettre et pour ceux sans lettre.
Elle s'appuie sur le remplacement de lettre et le modulo 97 comme indiqué dans les renvois documentaires précédents.

Cordialement
 
Bonjour à tous.

Quelques essais en pièce jointe...​

ℝOGER2327
#8345


Dimanche 22 Absolu 144 (Emmanuel Dieu - fête Suprême Seconde)
8 Vendémiaire An CCXXV, 0,2173h - amarante
2016-W39-4T00:31:18Z
 

Pièces jointes

Dernière édition:
Bonjour pierrejean, bonjour à tous.

Wikipédia nous offre une magnifique formule pour le cas où des lettres se trouveraient un peu partout.
Pour un numéro de 21 chiffres ou lettres majuscules en A1 :​
VB:
=97-MOD(CONCATENER(
    MOD(CONCATENER(
    MOD(STXT(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(
             SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(
             SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(
             SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(MAJUSCULE(A1);
"A";"1");"B";"2");"C";"3");"D";"4");"E";"5");"F";"6");"G";"7");"H";"8");"I";"9");
"J";"1");"K";"2");"L";"3");"M";"4");"N";"5");"O";"6");"P";"7");"Q";"8");"R";"9");
"S";"2");"T";"3");"U";"4");"V";"5");"W";"6");"X";"7");"Y";"8");"Z";"9");1;7);97);
        STXT(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(
             SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(
             SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(
             SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(MAJUSCULE(A1);
"A";"1");"B";"2");"C";"3");"D";"4");"E";"5");"F";"6");"G";"7");"H";"8");"I";"9");
"J";"1");"K";"2");"L";"3");"M";"4");"N";"5");"O";"6");"P";"7");"Q";"8");"R";"9");
"S";"2");"T";"3");"U";"4");"V";"5");"W";"6");"X";"7");"Y";"8");"Z";"9");8;8));97);
        STXT(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(
             SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(
             SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(
             SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(MAJUSCULE(A1);
"A";"1");"B";"2");"C";"3");"D";"4");"E";"5");"F";"6");"G";"7");"H";"8");"I";"9");
"J";"1");"K";"2");"L";"3");"M";"4");"N";"5");"O";"6");"P";"7");"Q";"8");"R";"9");
"S";"2");"T";"3");"U";"4");"V";"5");"W";"6");"X";"7");"Y";"8");"Z";"9");16;6))&"00";97)
(1 614 caractères)

On pourra préférer :​
VB:
=97-MOD(
5*SOMME(SI(CODE(STXT(GAUCHE(A1;12);LIGNE($1:$12);1))<64;
           CODE(STXT(GAUCHE(A1;12);LIGNE($1:$12);1))-48;
  MOD(ENT((CODE(STXT(GAUCHE(A1;12);LIGNE($1:$12);1))-65)*10/9);10)+
          (CODE(STXT(GAUCHE(A1;12);LIGNE($1:$12);1))>82)+1)*10^(12-LIGNE($1:$12)))+
3*SOMME(SI(CODE(STXT(DROITE(A1;9 );LIGNE($1:$9 );1))<64;
           CODE(STXT(DROITE(A1;9 );LIGNE($1:$9 );1))-48;
  MOD(ENT((CODE(STXT(DROITE(A1;9 );LIGNE($1:$9 );1))-65)*10/9);10)+
          (CODE(STXT(DROITE(A1;9 );LIGNE($1:$9 );1))>82)+1)*10^( 9-LIGNE($1:$9 )));97)

(487 caractères)
À valider par Ctrl Maj Entrée.​

Bonne soirée.

ℝOGER2327
#8346


Dimanche 22 Absolu 144 (Emmanuel Dieu - fête Suprême Seconde)
8 Vendémiaire An CCXXV, 6,0602h - amarante
2016-W39-4T14:32:40Z
 
Dernière édition:
Bonjour à tous.

Quelques essais en pièce jointe...​

ℝOGER2327
#8345


Dimanche 22 Absolu 144 (Emmanuel Dieu - fête Suprême Seconde)
8 Vendémiaire An CCXXV, 0,2173h - amarante
2016-W39-4T00:31:18Z
Bonjour à tous.

Quelques essais en pièce jointe...​

ℝOGER2327
#8345


Dimanche 22 Absolu 144 (Emmanuel Dieu - fête Suprême Seconde)
8 Vendémiaire An CCXXV, 0,2173h - amarante
2016-W39-4T00:31:18Z
10 ans après toujours d'actualité. Vraiment merci.
 
- 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

Discussions similaires

Réponses
6
Affichages
3 K
Réponses
7
Affichages
45 K
J
Réponses
7
Affichages
11 K
T
J
Réponses
1
Affichages
992
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…