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