fritzi01
Usuario (Argentina)
Basándome en la descripcion del cálculo de número de CUIT pulicada en Taringa por maurobernal666 escribí una función que calcula el número de CUIT-CUIL en vb. De acuerdo a lo que comenta Mauro es probable que no sea infalible debido a los errores en las cuit ya otorgadas o a ls cambios de metodología para el cálculo, pero se podrán obener cuits válidos en la mayoría de los casos. Esta función está escrita en Visual Basic, ya que se puede utilizar tanto en Open Ofice Calc como en MS Excel. El primer parámetro es el número de documento y el segundo es el sexo: M-Masculino, F-femnino, J-Empresas u otras entidades jurídicas. Function Cuit (pDoc as long, pSexo as string) as string dim mDoc as string dim mNum as integer dim mZ as integer select case pSexo case "M": mPrefijo= "20" mNum= 2*5+0*4 case "F": mPrefijo= "27" mNum= 2*5+7*4 case "J": mPrefijo= "30" mNum= 3*5+0*4 case "X": mPrefijo= "23" mNum= 2*5+3*4 end select mDoc= right("00000000"<rim(format(pDoc,"########" ) ),8 ) mNum= mNum+val(mid(mDoc,1,1))*3 mNum= mNum+val(mid(mDoc,2,1))*2 mNum= mNum+val(mid(mDoc,3,1))*7 mNum= mNum+val(mid(mDoc,4,1))*6 mNum= mNum+val(mid(mDoc,5,1))*5 mNum= mNum+val(mid(mDoc,6,1))*4 mNum= mNum+val(mid(mDoc,7,1))*3 mNum= mNum+val(mid(mDoc,8,1))*2 mResto=mNum mod 11 mZ= 11-mResto if Mz=11 then Cuit= mPrefijo & mdoc & "0" elseif mResto=1 then Cuit= Cuit(pDoc, "X" ) else Cuit= mPrefijo & mdoc & trim(format(mZ,"#" ) ) end if End Function