Cálculo de la Letra del NIF
Por: [email protected]
Fecha: 23/Jun/97 (aunque como verás más abajo, está desde hace
tiempecillo...)
Date sent: Mon, 07 Apr 1997
11:59:48 +0200
From: [email protected]
¡Oye! muy buena tu página. Y una
grandísima idea. Si quieres te mando una pequeña colaboración
para sacar el NIF a partir de un número de DNI. La forma en la
que se calcula el NIF es una chorrada, pero lo que sí es
complicado es saber a qué número corresponde una letra. Para
calcular el NIF hay que dividir el DNI entre 23 y el resto es
codificado por una letra. Así si el resto es 0, el NIF es T, si
es 1, el NIF ES R etc.... Bueno, nme dejo de enrrollar.
Si alguien quiere más información, que me escriba: [email protected].
La forma de utilización es muy simple: tan sólo hay que añadir
el fichero nif.bas al proyecto y si se quiere calcular el NIF de
un DNI tan sólo hay que hacer la llamada Calc_NIF(DNI.Text)
(aquí he supuesto que el DNI está escrito en el TextBox llamado
DNI) y en la propia llamada te devuelve el NIF (al más puro
estilo C). Así que creando dos TextBox juntitos, uno llamado DNI
y otro NIF, poniendo en el evento Lost_Focus del DNI la línea
NIF.Text = Calc_NIF(DNI.Text) Está todo listo. Por ahora dejo
esto, a ver si tengo un poquito más de tiempo y prepara algo
más jugoso para tu página.
Public Function Calc_NIF(DNI) As String
Dim resto As Integer
If DNI = "" Then
Calc_NIF = ""
Exit Function
End If
If DNI <> Val(DNI) Then
Calc_NIF = ""
Exit Function
End If
resto = Val(DNI) Mod 23
Select Case resto
Case 0
Calc_NIF = "T"
Case 1
Calc_NIF = "R"
Case 2
Calc_NIF = "W"
Case 3
Calc_NIF = "A"
Case 4
Calc_NIF = "G"
Case 5
Calc_NIF = "M"
Case 6
Calc_NIF = "Y"
Case 7
Calc_NIF = "F"
Case 8
Calc_NIF = "P"
Case 9
Calc_NIF = "D"
Case 10
Calc_NIF = "X"
Case 11
Calc_NIF = "B"
Case 12
Calc_NIF = "N"
Case 13
Calc_NIF = "J"
Case 14
Calc_NIF = "Z"
Case 15
Calc_NIF = "S"
Case 16
Calc_NIF = "Q"
Case 17
Calc_NIF = "V"
Case 18
Calc_NIF = "H"
Case 19
Calc_NIF = "L"
Case 20
Calc_NIF = "C"
Case 21
Calc_NIF = "K"
Case 22
Calc_NIF = "E"
End Select
End Function