[Résolu] Insertion de tirets dans une chaine de caractères

Gacko

XLDnaute Nouveau
Bonjour,
Devant saisir chaque jour beaucoup d'IBAN dans le cadre de mon travail je cherche une formule pour ajouter des tirets afin d'obtenir une meilleure lisibilité
C'est pour passer par ex de: FR7610096181020007557020165 à FR76-1009-6181-0200-0755-7020-165
Auriez vous une idée les amis ?
Merci beaucoup ;-)
 

Fred0o

XLDnaute Barbatruc
Bonjour Gacko
Une macro evenementielle a mettre dans le code de ta feuille de saisie :

Private Sub Worksheet_Change(ByVal Target As Range)
If Len(Target.Value) <> 27 Then Exit Sub
Target.Value = Left(Target.Value, 4) & "-" & Right(Left(Target.Value, 8), 4) & "-" & Right(Left(Target.Value, 12), 4) _
& "-" & Right(Left(Target.Value, 16), 4) & "-" & Right(Left(Target.Value, 20), 4) & "-" & _
Right(Left(Target.Value, 24), 4) & "-" & Right(Left(Target.Value, 27), 3)
End Sub

A tester
 

kan3pz

XLDnaute Occasionnel
Bonjour Gacko,

Avec ton exemple si IBAN en A2 :

=STXT(A2;1;4)&"-"&STXT(A2;5;4)&"-"&STXT(A2;9;4)&"-"&STXT(A2;13;4)&"-"&STXT(A2;17;4)&"-"&STXT(A2;21;4)&"-"&STXT(A2;25;3)

(Prérequis : tout le temps le même nombre de caractères entre les tirets)
A+
 

Lone-wolf

XLDnaute Barbatruc
Bonjour kan

La formule donne VRAI comme résultat. Et la macro de fred donne le résultat escompté.

La macro de fred en Formule

=GAUCHE(A2;4)&"-"&DROITE(GAUCHE(A2;8);4)&"-"&DROITE(GAUCHE(A2;12);4)&"-"&DROITE(GAUCHE(A2;16);4)&"-"&DROITE(GAUCHE(A2;20);4)&"-"&DROITE(GAUCHE(A2;24);4)&"-"&DROITE(A2;3)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Histoire de m'amuser ;)
Mode d'emploi
Si en A1 on a :FR7610096181020007557020165
En B1 saisir
=AUSS_IBAN_CALE_KELAMAISON_DES_3_TITS_COCHONS(A1)
VB:
Public Function AUSS_IBAN_CALE_KELAMAISON_DES_3_TITS_COCHONS(C$) As String
Dim tmp$, x!, i!
If IsEmpty(C) Then Exit Function
tmp = "": x = Len(C)
For i = 1 To x Step 4
tmp = tmp & Mid(C, i, 4) & "-"
Next i
AUSS_IBAN_CALE_KELAMAISON_DES_3_TITS_COCHONS = Left(tmp, 33)
End Function

NB: J'autorise le demandeur a renommer cette petite fonction personnalisée à sa guise ;)
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour,
Devant saisir chaque jour beaucoup d'IBAN dans le cadre de mon travail je cherche une formule pour ajouter des tirets afin d'obtenir une meilleure lisibilité
C'est pour passer par ex de: FR7610096181020007557020165 à FR76-1009-6181-0200-0755-7020-165
Auriez vous une idée les amis ?
Merci beaucoup ;-)
???? pourquoi ré-inventer un découpage qui est normalisé :
https://www.iban.fr/structure.html
=STXT(B1;1;2) &"-"&STXT(B1;3;2)&"-"&STXT(B1;5;5)&"-"&STXT(B1;10;5)&"-"&STXT(B1;15;11)&"-"&STXT(B1;26;2)
upload_2018-4-18_19-58-9.png


au passage une proc pour afficher le découpage IBAn
et ajouter les tirets
lancer la proc après avoir sélectionné la cellule contenant la saisie
VB:
Sub verif_IBAN()
Dim IBAN As String, Codepays, CleIban, Codebanque, CodeGuichet, Compte, clerib, htab
htab = Chr(9)
IBAN = Application.Substitute(Selection, "-", "")
IBAN = Application.Substitute(IBAN, " ", "")
Codepays = Left(IBAN, 2)
CleIban = Mid(IBAN, 3, 2)
Codebanque = Mid(IBAN, 5, 5)
CodeGuichet = Mid(IBAN, 10, 5)
Compte = Mid(IBAN, 15, 11)
clerib = Mid(IBAN, 26, 2)
MsgBox "Code Pays : " & htab & Codepays _
& vbCr & "Cle Iban : " & htab & CleIban _
& vbCr & "Code banque : " & htab & Codebanque _
& vbCr & "Code Guichet : " & htab & CodeGuichet _
& vbCr & "N° compte : " & htab & Compte _
& vbCr & "Cle rib :   " & htab & clerib
Selection = Codepays & "-" & CleIban & "-" & Codebanque & "-" & CodeGuichet & "-" & Compte & "-" & clerib
End Sub
upload_2018-4-18_23-12-29.png


ce qui serait un plus serait le controle de la clé IBAN (caractères 3 et 4)
ainsi que la clé RIB
https://fr.wikipedia.org/wiki/International_Bank_Account_Number#Algorithme_de_vérification_de_l'IBAN
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 345
Membres
102 868
dernier inscrit
JJV