Calcular IBAN desde una cuenta CCC


Código fuente cálculo IBAN visual basic

Página de descarga gratis del código fuente para el cálculo del IBAN pasando como parámetro la cuenta CCC.
Para ver cómo está hecha la rutina solo tienes que descargar el fichero calculoIBAN.bas.zip en tu pc y descomprimir. Dentro encontrarás solo un fichero con el nombre calculoIBAN.bas que solo contiene el código de una función a la cual le pasas como parámetro el CCC (Entidad, Oficina, dígitos de control, cuenta) y te devuelve los dos dígitos del IBAN con esto podrías formar la siguiente cadena ESXX EEEE OOOO DD CCCCCCCCCC, donde XX son los dígitos devueltos por la función.

No se si ha quedado muy claro por lo que si tenéis alguna duda comentadla aquí.

La función realizada en visual basic la podéis descargar desde aquí:

Espero que os sirva de ayuda.

 

Sigue leyendo para ver como está hecha la función.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
Function CalcularDigitosIBAN(entrada As String) As String
Dim ArrayLetra(0 To 25) As String
Dim ArrayNumero(0 To 25) As Integer
Dim EntradaDecimal As Long
Dim Resto As Integer
Dim NuevaEntrada As String
Dim Letras As String
Dim DigitoControl As String
ArrayLetra(0) = "A"
ArrayLetra(1) = "B"
ArrayLetra(2) = "C"
ArrayLetra(3) = "D"
ArrayLetra(4) = "E"
ArrayLetra(5) = "F"
ArrayLetra(6) = "G"
ArrayLetra(7) = "H"
ArrayLetra(8) = "I"
ArrayLetra(9) = "J"
ArrayLetra(10) = "K"
ArrayLetra(11) = "L"
ArrayLetra(12) = "M"
ArrayLetra(13) = "N"
ArrayLetra(14) = "O"
ArrayLetra(15) = "P"
ArrayLetra(16) = "Q"
ArrayLetra(17) = "R"
ArrayLetra(18) = "S"
ArrayLetra(19) = "T"
ArrayLetra(20) = "U"
ArrayLetra(21) = "V"
ArrayLetra(22) = "W"
ArrayLetra(23) = "X"
ArrayLetra(24) = "Y"
ArrayLetra(25) = "Z"
ArrayNumero(0) = 10
ArrayNumero(1) = 11
ArrayNumero(2) = 12
ArrayNumero(3) = 13
ArrayNumero(4) = 14
ArrayNumero(5) = 15
ArrayNumero(6) = 16
ArrayNumero(7) = 17
ArrayNumero(8) = 18
ArrayNumero(9) = 19
ArrayNumero(10) = 20
ArrayNumero(11) = 21
ArrayNumero(12) = 22
ArrayNumero(13) = 23
ArrayNumero(14) = 24
ArrayNumero(15) = 25
ArrayNumero(16) = 26
ArrayNumero(17) = 27
ArrayNumero(18) = 28
ArrayNumero(19) = 29
ArrayNumero(20) = 30
ArrayNumero(21) = 31
ArrayNumero(22) = 32
ArrayNumero(23) = 33
ArrayNumero(24) = 34
ArrayNumero(25) = 35
' Reemplazar caracteres no válidos
entrada = Replace(entrada, "/", "")
entrada = Replace(entrada, "-", "")
entrada = Replace(entrada, "?", "")
entrada = Replace(entrada, ".", "")
entrada = Replace(entrada, "¿", "")
entrada = Replace(entrada, "(", "")
entrada = Replace(entrada, ")", "")
entrada = Replace(entrada, "_", "")
entrada = Replace(entrada, ",", "")
entrada = Replace(entrada, "+", "")
entrada = Replace(entrada, "¡", "")
entrada = Replace(entrada, "!", "")
entrada = Replace(entrada, Chr(39), "")
' calculamos los dígitos
For i = 1 To Len(entrada)
letra = Mid(entrada, i, 1)
If IsNumeric(letra) Then
NuevaEntrada = NuevaEntrada + letra
Else
For X = 0 To 25
If letra = ArrayLetra(X) Then
NuevaEntrada = NuevaEntrada + ArrayNumero(X)
Exit For
End If
Next X
End If
Next i
NuevaEntrada = NuevaEntrada + "142800"
For n = 1 To Len(NuevaEntrada)
DIVIDENDO = Resto & Mid(NuevaEntrada, n, 1)
Resto = DIVIDENDO Mod 97
Next n
DigitoControl = Format(98 - Resto, "00")
CalcularDigitosIBAN = DigitoControl
End Function