Public Function IBANCalculo(Pais As String, Cuenta As String) As String
' Recibe el pais con 2 letras (ES para España)
' Recibe el número de cuenta
Dim Letras As String * 26
Dim IBAN As String
Dim Dividendo As Integer
Dim Resto As Integer
' Quita los posibles espacios
Cuenta = Replace(Cuenta, " ", "")
' Calcula el valor de las letras, las quita y añade el valor al final
Letras = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
IBAN = Cuenta & CStr(InStr(1, Letras, Left(Pais, 1)) + 9) & CStr(InStr(1, Letras, Right(Pais, 1)) + 9) & "00"
For Contador = 1 To Len(IBAN)
Dividendo = Resto & Mid(IBAN, Contador, 1)
Resto = Dividendo Mod 97
Next Contador
IBANCalculo = "IBAN" & Pais & Format((98 - Resto), "00") & Cuenta
End Function
Public Function IBANValidacion(IBAN) As Boolean
' Recibe el IBAN
Dim Letras As String * 26
Dim Dividendo As Integer
Dim Resto As Integer
Letras = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
' Quita la palabra IBAN
IBAN = Replace(IBAN, "IBAN", "")
' Quita los posibles espacios
IBAN = Replace(IBAN, " ", "")
' Calcula el valor de las letras, las quita y añade el valor al final
IBAN = Mid(IBAN, 3, Len(IBAN) - 2) & CStr(InStr(1, Letras, Left(IBAN, 1)) + 9) & CStr(InStr(1, Letras, Mid(IBAN, 2, 1)) + 9)
' Quita los digitos de control y los pone al final
IBAN = Mid(IBAN, 3, Len(IBAN) - 2) & Left(IBAN, 2)
For Contador = 1 To Len(IBAN)
Dividendo = Resto & Mid(IBAN, Contador, 1)
Resto = Dividendo Mod 97
Next Contador
If Resto = 1 Then
IBANValidacion = True
Else
IBANValidacion = False
End If
End Function