Vérifier si IBAN correct

Bonjour à tous,

J'utilise un fichier de paiement collectif. Malheureusement les gens ne me donnent pas toujours un n°de compte bancaire correct. J'avais donc une fonction qui me permettait de le vérifier avant d'envoyer pour paiement.

Maintenant que le format IBAN va être obligatoire, pouvez-vous me dire comment il est possible de vérifier si le compte IBAN fourni est correct?

D'avance, je vous remercie et vous souhaite une bonne journée.

Bonjour Isatomafa,

Il me semble que Substring n'existe pas en VBA d'où un code faux pour la fonction Iban du classeur. Utilise le code suivant plutôt (tiré de wikipédia) :

Function Mod97(Numero As String) As Integer
Nro = Numero
A = 0
B = 0
C = 0
E = Right(Nro, 6)
D = Mid(Nro, Len(Nro) - 11, 6)
Select Case Len(Nro)
 Case 13 To 20
   C = CDbl(Mid(Nro, 1, Len(Nro) - 12))
 Case 21 To 28
   C = CDbl(Mid(Nro, Len(Nro) - 19, 8))
   If Len(Nro) <> 20 Then B = CDbl(Mid(Nro, 1, Len(Nro) - 20))
 Case 29 To 36
   C = CDbl(Mid(Nro, Len(Nro) - 19, 8))
   B = CDbl(Mid(Nro, Len(Nro) - 27, 8))
   A = CDbl(Mid(Nro, 1, Len(Nro) - 28))
 Case Else
 Mod97 = "#VALEUR!"
 Exit Function
End Select
div97 = Int((A * 93 + B * 73 + C * 50 + D * 27 + E Mod 97) / 97)
Mod97 = (A * 93 + B * 73 + C * 50 + D * 27 + E Mod 97) - div97 * 97
End Function

Function convIBAN(lettre As String)
  convIBAN = (Asc(lettre) - 55)
End Function

Function ControleIban(LeNumIban As String) As Boolean
Dim x As String
LeNumIban = Replace(LeNumIban, " ", "")
LeNumIban = Right(LeNumIban, Len(LeNumIban) - 4) & Left(LeNumIban, 4)
n = 1
While n <= Len(LeNumIban)
  x = Mid(LeNumIban, n, 1)
 If Not IsNumeric(x) Then
   LeNumIban = Replace(LeNumIban, x, convIBAN(x), 1, 1)
 End If
  n = n + 1
Wend
n_iban = Mod97(LeNumIban)
If n_iban = 1 Then
  ControleIban = True
Else
  ControleIban = False
End If
End Function

Génial !

Ca fonctionne très bien.

Un tout grand merci à toi,

Bonne journée.

Rechercher des sujets similaires à "verifier iban correct"