Verificar CUIL y CUIT (Sólo para Argentina)
Ya sea en sistemas de gestión como en facturación o liquidación de haberes la necesidad de verificar la integridad y validez de una clave CUIL o CUIT puede ahorrarnos futuros dolores de cabeza cuando el operador ingrese mal un dato y nos haga perder varias horas de trabajo para subsanar el problema causado.
Básicamente una clave CUIL o CUIT está formada por dos números, un guión, otros ocho números, otro guión y un último número que hace las veces de dígito verificador.
El sub que presentamos aquí debe agregarse en un módulo BAS cualquiera que sea y con sólo llamarlo pasándole el CUIL o CUIT a comprobar hará el trabajo necesario y, de haber error, presentará una paleta de aviso.
A continuación el código:
Sub VerificarCUIT
(CUIT)
'Verifica si el tamaño es el correcto.
If Len(CUIT) = 13 Then
'Individualiza y multiplica los dígitos.
XA = Val(Mid$(CUIT, 1, 1)) * 5
XB = Val(Mid$(CUIT, 2, 1)) * 4
XC = Val(Mid$(CUIT, 4, 1)) * 3
XD = Val(Mid$(CUIT, 5, 1)) * 2
XE = Val(Mid$(CUIT, 6, 1)) * 7
XF = Val(Mid$(CUIT, 7, 1)) * 6
XG = Val(Mid$(CUIT, 8, 1)) * 5
XH = Val(Mid$(CUIT, 9, 1)) * 4
XI = Val(Mid$(CUIT, 10, 1)) * 3
XJ = Val(Mid$(CUIT, 11, 1)) * 2
'Suma los resultantes.
x = XA + XB + XC + XD + XE + XF + XG + XH + XI + XJ
'Calcula el dígito de control.
Control = (11 - (x Mod 11)) Mod 11
'Verifica si el dígito de control ingresado difiere con el calculado.
If Control <> Val(Mid$(CUIT, 13, 1)) Then
'Presenta la ventana de aviso.
MsgBox "El CUIT ingresado es incorrecto. Verifíquelo e intente nuevamente." + Chr$(13) + Chr$(13) + "CUIT Ingresado: " + CUIT + Chr$(13) + "CUIT Estimativo: " + Left(CUIT, 12) + Trim$(Str$(Control)), 48, "CUIT ERRONEO"
End If
End If
End Sub
La forma de llamarlo es:
Sub CUIT_Change ()
VerificarCUIT (CUIT)
End Sub
Aquí el control es un textbox que dispusimos para ingresar un CUIT y, justamente, su contenido es el pasado como dato a la sub.
Autor: Pablo Canello