Validar numero de CUIT en Excel con visual basic

Necesito validar el Numero de Cuit según el algoritmo que e utiliza en argentina para calcular los mismos. El problema se me presenta en el trabajo, tengo una planilla donde cargo numeos de cuit, y han surgido errores por mal tipeo.
Yo necesito que al ingresar por ejemplo 20 25548452 5 me tire un error si tipeo 20 25548452 0 ya que ese ultimo numero como usted sabrá es un coeficiente de validación, que verifica que lo anterior es correcto. Tengo dos archivos que baje de la web, que me permite validar, pero esta todo desglosado y ademas, se inserta en una columna adicional que debería agregar en la planilla.
Yo quiero que al ingresar el cuit, si esta mal, me tire un error ...
¿Ser aposible?
Saludos.
Jorge de Venado Tuerto
ARgentina

1 respuesta

Respuesta
-1
Así como me lo dices se puede hacer, debes saber como validar, tener el algoritmo para hacerlo, es decir, si pone 0 al final el 3 o 4 el 5 el 8 deben ser tal o cual.
Dame un mejor alcance de lo que tienes y vemos que podemos hacer.
Caballero, acá esta el algoritmo...
VERIFICACIÓN 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
Tengo la solución a esto en un archivo de excel, pero mediant fórmula, eso implica tener cierts datos en columnas ocultas que no quiero tener, la idea es que este en visual.
Lo encontré por ahí, pero no lo entiendo y no logro adaptarlo a excel, y aque no se nada de visual... y no se como definir al celda actual, etc.etc.
Este es el código que encontré por ahí googleando...
Más código pero en visual lpara adaptar a excel.
<?
function UfValidStrCuit($cuit,&$resultado)
{
 $coeficiente[0]=5;
 $coeficiente[1]=4;
 $coeficiente[2]=3;
 $coeficiente[3]=2;
 $coeficiente[4]=7;
 $coeficiente[5]=6;
 $coeficiente[6]=5;
 $coeficiente[7]=4;
 $coeficiente[8]=3;
 $coeficiente[9]=2;
 $resultado=1;
 for ($i=0; $i < strlen($cuit); $i= $i +1) {    //separo cualquier caracter que no tenga que ver con numeros
  if ((Ord(substr($cuit, $i, 1)) >= 48) && (Ord(substr($cuit, $i, 1)) <= 57))
  {
   $cuit_rearmado = $cuit_rearmado . substr($cuit, $i, 1);
  }
 }
 If (strlen($cuit_rearmado) <> 11) {  // si to estan todos los digitos
  $resultado=0;
 } Else {
  $sumador = 0;
  $verificador = substr($cuit_rearmado, 10, 1); //tomo el digito verificador
  For ($i=0; $i <=9; $i=$i+1) {
   $sumador = $sumador + (substr($cuit_rearmado, $i, 1)) * $coeficiente[$i];//separo cada digito y lo multiplico por el coeficiente
  }
  $resultado = $sumador % 11;
  $resultado = 11 - $resultado;  //saco el digito verificador
  $veri_nro = intval($verificador);
  If ($veri_nro <> $resultado) {
   $resultado=0;
  } else {
   $cuit_rearmado = substr($cuit_rearmado, 0, 2) . "-" . substr($cuit_rearmado, 2, 8) . "-" . substr($cuit_rearmado, 10, 1);
  }
 }
}
?>
Saludos, espero no haberlo mareado.
Jorge
El código que me pones es de PHP así que de poco nos servirá para Excel, el otro problema es que me dices que no sabes nada de Visual Basic, así que me queda todo el trabajo a mi y la idea de mi ayuda es orientar y no hacer el trabajo por los demás.
Te dejo unos links para cursos de Visual Basic for Applications:
http://www.conocimientosweb.net/dcmt/ficha15054.html
http://www.todoexpertos.com/categorias/tecnologia-e-internet/software-y-aplicaciones/microsoft-excel/respuestas/802637/manual-vba-excel

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas