Código de Visual Basic - Verificar el CUIT/CUIL (Argentina)

sin imagen de perfil

Verificar el CUIT/CUIL (Argentina)gráfica de visualizaciones


Visual Basic

Publicado el 9 de Abril del 2002 por Jose Antonio
39.390 visualizaciones desde el 9 de Abril del 2002
Este es el codigo para el digito verificado, para chequear el CUIT/CUIL en Argentina. Tiene la rutina en el Módulo DigitoVerificador para poderlo agregar en cualquier programa. Permite ingresar los datos en formato "99-99999999-9" (13 digitos) o" 99999999999" (11 digitos). Devuelve el CUIT/CUIL con guioines.

Versión 1
estrellaestrellaestrellaestrellaestrella(19)

Publicado el 9 de Abril del 2002gráfica de visualizaciones de la versión: Versión 1
39.391 visualizaciones desde el 9 de Abril del 2002
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Si alguno de los archivos de descarga no funciona, comentanos aquí el error.




Comentarios sobre la versión: Versión 1 (19)

14 de Abril del 2002
estrellaestrellaestrellaestrellaestrella
Puede servir para verificar el codigo del Rut de cada persona en un solo campo
Responder
15 de Abril del 2002
estrellaestrellaestrellaestrellaestrella
Al algoritmo hay que corregirlo!!!
donde dice:
resultado = sumador Mod 11
resultado = 11 - resultado 'saco el digito verificador

DEBE DECIR:
resultado = sumador Mod 11
If resultado <> 0 Then
resultado = 11 - resultado 'saco el digito verificador
End If

Responder
16 de Abril del 2002
estrellaestrellaestrellaestrellaestrella
Aclaración del algoritmo para Nelson npacheco@mail.com !!!!!!

No se puede obviar el modulo con un if cuando es cero, porque si da 11 entonces el CUIT/Cuil no res correcto.
La AFIP usa al comienzo de la clave:

20 unipersonal hombre
27 unipersonal mujer
30 empresas (de hecho,S.R.L.,S.A. etc.

Cuando se asigna el CUIL/CUIL y el digito verificador da 10 o mas se reemplaza el comienzo de la clave por:

23 unipersonal hombre
28 unipersonal mujer
33 empresas (de hecho,S.R.L.,S.A. etc.

Ejemplo:

Documento unipersonal hombre
21886766

CUIT: 20-21886766-X

Si uso 20 de identificacion me da a dar un digito verificador mayor o igual a 10 (en este caso el resultado del digito verificador seria 10 y NO SIRVE)

Se reemplaza el 20 por 23 y da

CUIT 23-21886766-9 (da digito verificador 9)

Espero que sirve de ejemplo y no estropees el codigo porque va a salir cuaquier verdura.

Jose Bascoy


Responder
4 de Julio del 2002
estrellaestrellaestrellaestrellaestrella
Es la validacion clasica, pero hay excepciones como
27-22297864-0 de Patricia Cona que no supera la validacion
habra que conseguir mas datos de como calcular o salvar los CUIT o CUIL comenzados en 27 o 33
Responder
4 de Julio del 2002
estrellaestrellaestrellaestrellaestrella
este si funciona !!

VERIFICACION DE CUIT/CUIL (genérico)
El CUIL consta de 11 números. Los 10 primeros (2 + 8)
constituyen el código de identificación y el último, el
dígito de verificación. Para obtener esta verificación se
procede de la siguiente forma: A cada dígito del código, se
lo multiplica por los siguientes números (respectivamente)
5, 4, 3, 2, 7, 6, 5, 4, 3, 2 y cada valor obtenido, se suma
para obtener una expresión (que llamaremos "valor 1". A
este "valor 1", se le saca el resto de la división
entera a 11. Se obtiene de esta forma un número (del 0 al
10) (que llamamos "valor 2"). Sacamos la diferencia entre
11 y el "valor 2", y obtenemos un valor comprendido entre 1
y 11 (llamémosle "valor 3"). Si "valor 3"=11, el código
verificador es cero. Si "valor 3"=10, el código verificador
es 9. En cualquier otro caso, el código verificador es
"valor 3".
Ejemplo numérico con un número de CUIT, que es 20-17254359-7.
2 0 1 7 2 5 4 3 5 9
x
5 4 3 2 7 6 5 4 3 2
------------------------------------------------
10 + 00 + 03 + 14 + 14 + 30 + 20 + 12 + 15 + 18 = 136
v1 = 136
136 mod 11 = 4
v2 = 4
11 - 4 = 7
v3 = 7 => Código de verificación es siete.
Responder
5 de Julio del 2002
estrellaestrellaestrellaestrellaestrella
Aclaración:
El digito verificador debe ser exacto ( de 0 a 9) no se puede reemplazar cuando da 10 por 9 porque no es valido. En el caso del comentario de Pablo con el cuit o cuil comenzando en 27, hay que reemplazarlo por 28, porque asi lo determina la DGI. Para todo cuit o cuil que no de el digito verificador hay un reemplazo (comentario que lo explica mas abajo). El 33 es reemplazo del 30.
Responder
17 de Julio del 2002
estrellaestrellaestrellaestrellaestrella
Muy bueno. Hacia rato que buscaba el algoritmo que utilizaban para verificar un CUIT válido. Gracias.
Responder
6 de Septiembre del 2002
estrellaestrellaestrellaestrellaestrella
Muy util
Responder
17 de Septiembre del 2002
estrellaestrellaestrellaestrellaestrella
Aunque no entendí bien el algoritmo de decisión para el CUIT, aprendí un poco de sintaxis y de estructura de datos de VB.

PD. No sabía nada de VB, je je je .

Gracias.
Responder
24 de Septiembre del 2002
estrellaestrellaestrellaestrellaestrella
Solucione el error de 11 y 10 con :"si resultado=11 resultado=0 si resultado=10 resultado=9
Responder
9 de Enero del 2004
estrellaestrellaestrellaestrellaestrella
Malo
Responder
12 de Marzo del 2004
estrellaestrellaestrellaestrellaestrella
es util, copie la funcion la adapte para que retorne un boolean y funciona bien
Responder
31 de Julio del 2004
estrellaestrellaestrellaestrellaestrella
Funciona pero no valida los cuit que comienzan con 24. ¿Hay solución?
Responder
7 de Enero del 2005
estrellaestrellaestrellaestrellaestrella
sadsad
Responder
15 de Julio del 2008
estrellaestrellaestrellaestrellaestrella
Gente...

La rutina está bien, excepto por un pequeño error en el cálculo de digito verificador.

donde dice:

resultado = 11 - resultado 'saco el digito verificador

corrijanlo por:

resultado = (11 - resultado) Mod 11


y listo.... el muchacho se olvidó de hacer un último Mod.... a cualquiera le podría pasar che!!!!!

Responder
30 de Julio del 2013
estrellaestrellaestrellaestrellaestrella
Que pasa cuando con el 20 da 11 el dígito verificador? y si lo cambio por 23 da 10... se pone 27 aunque sea hombre o como se hace?
con 27 si da un numero de un solo digito.

Saludos
Responder
hirass
12 de Julio del 2016
estrellaestrellaestrellaestrellaestrella
Chicos creo que no se soluciona con una cuenta, alguna vez escuche que utilizan esa modalidad de cambio cuando el resultado es la formacion exacta al cuit/cuil de otra persona, dado que por su edad no usan su dni para formarlo, se entiende ? es arbitrario y ninguna cuenta nos dara 100% seguridad ya que es un trabajo manual del afip (manual=es un decir), yo solo me preocuparia por validar con son solo numeros y que estan todos completos y que de error en algun momento para saber que hay que corregir el dato
Responder
10 de Febrero del 2020
estrellaestrellaestrellaestrellaestrella
Gracias José Antonio, por tu publicación. 18 años después sigue vigente tu contribución. Leí cuidadosamente las correcciones a tu código. Trataré de arrojar un poco de luz sobre pequeñas confuciones, en los comentarios.
José Boscoy sostiene, que en los casos en que el dígito verificador calculado con tu formula da > a 9(puede del 10 u 11), se debe reemplazar los primeros 2 dígitos del cuit. En los hombres 20 por 23, personas jurídicas 30 por 33. Teniendo en cuenta que el afectado es el segundo dígito, el cual es multiplicado por 4 en la fórmula, resulta que en estos dos casos el Sumador, se incrementa en 3*4=12. Esto produce que al dividirlo por 11, el resto aumente en 1, o sea que el muevo dígito verificador calculado baje en 1. Estimado José Boscoy, esto sirve solo para el dígito 10 que es el que usaste en el ejemplo. Cuando la fórmula calcule un dígito 11, solo le resta 1 y seguirá dando incompatible. Pará el CUIT de dama la suplantación debería ser de 27 a 30 y no a 28 para obtener el mismo resultado. Por lo tanto la corrección de la AFIP, para el dígito 10, es totalmente equivalente a la que propone PABLO, reemplazando el dígito 10 por el 9.
¿Qué pasa cuando la fórmula calcula el dígito 11?
Nelson es el primero en señalar que cuando el resto de la división es 0, o sea el dígito 11, se debe reemplazar por 0.
Y el 4 de Julio de 2002, Pablo descubrió la corrección correcta :
Si "valor 3"=11, el código
verificador es cero. Si "valor 3"=10, el código verificador
es 9. En cualquier otro caso, el código verificador es
"valor 3".
La confirma Jorge el 24/9/2002:Solucione el error de 11 y 10 con :"si resultado=11 resultado=0 si resultado=10 resultado=9.

Alcanza con agregar, luego de:
resultado = 11- resultado 'saco el digito verificador

las siguientes dos lineas:
If resultado = 11 Then: resultado = 0 'Cuando el resto de la división es 0
If resultado =10 Then : resultado = 9 'Cuando el resto de la división es 1

Estimado Lucho: que no te valide el CUIT que comienza en 24 debe ser bueno, pues a mi entender,
NO existen cuits que comienzan en 24.
Estimado Matías Freire, creo que el pequeño error, que podría pasar a cualquiera, te está pasando a vos. Por favor revisá tu corrección.
POR ÚLTIMO Estimado hirass. El onceavo dígito del CUIT (dígito verificador), sirve para saber, que cuando tipeas, los 10 primeros dígitos,no te equivocaste en ninguno. Esto es válido, para cualquier número por arbitrario que sea, pues el último dígito se calcula en base a los anteriores(tanto por la AFIP, como por el uso de esta Función). Mucha gente se equivoca al tipear, y el error de emitir una factura con un cuit incorrecto puede costar caro.
Responder
10 de Febrero del 2020
estrellaestrellaestrellaestrellaestrella
Estimado Lucho: Me corrijo sí existen cuits con primeros pares de dígitos distintos a los tres enunciados, mas arriba. Si con las correcciones sigue sin reconocerlo por favor publicá cual es el CUIT en cuestión.
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s160