Com calcular l'IBAN d'un compte bancari amb una funció creada amb codi VBA des d'Access

L'IBAN ( International Bank Account ) és el número d'identificació Internacional dels comptes bancaris. La seva finalitat és facilitar les operacions internacionals garantint l'exactitud de les dades.
Estructura de l'IBAN
A Espanya està format per 24 caràcters
  • Els dos primers caràcters identifiquen al país del compte. En el cas d'Espanya ES
  • Els dos caràcters següents són el dígit de control, calculat segons la norma ISO3166 per validar l'IBAN
  • Els vint caràcters restants corresponen al codi de compte bancari del client de tota la vida i que identifiquen l'Entitat financera ( 4 dígits ), l'Oficina del compte ( 4 dígits ), el dígit de control ( 2 dígits ) i el nº de compte ( 10 dígits )
Dels 24 caràcters els dos primers són coneguts "ES", els dos següents , el dígit de control de l'IBAN, són els que calcularem a través d'una funció que escriurem amb codi VBA des d'Access. Els 20 dígits restants es corresponen al compte bancari de tota la vida, el qual també té un dígit de control, el càlcul del qual podeu consultar a: Funció en Access que calcula el dígit de control d’un Compte Corrent Bancari
Exemple de l'estructura de l'IBAN d'un compte:
CCC: 2100 3426 86 1234567890
IBAN (Format imprès): ES62 2100 3426 8612 3456 7890
IBAN (Format electrònic): ES6221003426861234567890
Càlcul del dígit de control de l'IBAN amb una funció VBA
Per calcular el dígit de control amb una funció escrita en VBA des d'Access fem:
1. Creem un mòdul on escrivim el següent codi i el guardem amb el nom que vulguem.
Public Function DigitoControl(ByVal NroCta As String) As String
numeroiban$ = NroCta + "142800"
parte1$ = Mid$(numeroiban$, 1, 9)
parte2$ = Mid$(numeroiban$, 10, 7)
parte3$ = Mid$(numeroiban$, 17, 7)
parte4$ = Mid$(numeroiban$, 24, 6)
A = Val(parte1$) Mod 97
B = Val(Format(A) + parte2$) Mod 97
C = Val(Format(B) + parte3$) Mod 97
D = Val(Format(C) + parte4$) Mod 97
DigControl = Format(98 - D)
If Len(Trim(DigControl)) = 1 Then DigControl = "0" & DigControl
DigitoControl = "ES" & DigControl
Exit Function
MsgBox Err.Description
Err.Clear
End Function
2. Creem un formulari amb dos camps, un que anomenarem CCC on escriurem el compte bancari i l'altre que anomenarem IBAN on mostrem l'IBAN resultant. També crearem un botó que anomenarem Calcular IBAN des del qual cridarem a la funció DigitoControl que hem creat en el mòdul que hem anomenat Calcular_DC_IBAN i que ens permetrà construir l'IBAN que mostrarem.

El codi que s'amaga sota el botó Calcular IBAN és el que ens permet cridar a la funció DigitoControl que calcula el dígit de control de l'IBAN i construir l'IBAN definitiu ajuntant ES ( que prové de la funció DigitoControl ) + dígit control IBAN  ( que prové de la funció DigitoControl ) + Codi de compte bancari ( que és compte bancari que volem convertir en IBAN )
Private Sub CalcularIBAN_Click()
Me.IBAN = DigitoControl(Me.CCC) & Me.CCC
End Sub
En la vista formulari el resultat d'introduir un compte bancari i prémer el botó Calcular IBAN seria:

Podeu descarregar el fitxer Access que conté el formulari i la funció anterior: CalculadoraIBAN.accdb

Comentaris

Entrades populars