Hola
No se si esto es lo que necesitas
La persona escribe el nit y un digito de verificacio
Por ejemplo el usaurio deberia escribir el NIT 830122365 y el digito de verificacion 8
Luego el programa apartir del nit devuelve un digito de verificacion faltaria mirar si el que el usuario escribe y el que devuelve la funcion son iguales
El codigo es este
'---------------------------------------------------
Public Function DigitoNIT(ByVal sNit As String) As String
On Error Resume Next
Dim sTMP, sTmp1, sTmp2 As String
Dim i As Integer
Dim iResiduo As Integer
Dim iChequeo As Integer
Dim iPrimos(15) As Integer '<- Defino el Arreglo de los Primos.
iPrimos(1) = 3: iPrimos(2) = 7: iPrimos(3) = 13: iPrimos(4) = 17: iPrimos(5) = 19
iPrimos(6) = 23: iPrimos(7) = 29: iPrimos(8) = 37: iPrimos(9) = 41: iPrimos(10) = 43
iPrimos(11) = 47: iPrimos(12) = 53: iPrimos(13) = 59: iPrimos(14) = 67: iPrimos(15) = 71
iChequeo = 0: iResiduo = 0
For i = 0 To Len(Trim(sNit)) - 1
sTMP = Mid(sNit, Len(Trim(sNit)) - i, 1)
iChequeo = iChequeo + (Val(sTMP) * iPrimos(i + 1))
'MsgBox Val(sTmp), vbCritical, iPrimos(i + 1)
Next i
iResiduo = iChequeo Mod 11
If iResiduo <= 1 Then
If iResiduo = 0 Then DigitoNIT = 0
If iResiduo = 1 Then DigitoNIT = 1
Else
DigitoNIT = 11 - iResiduo
End If
'By GeNeTiKo
End Function
'---------------------------------------------------
para validar que el digito de verificacion es igual al que devuelve la funcion seria
If DigitoNIT(NIT)=NitVarificacion Then
MsgBox"OK"
Else
MsgBox "Error"
End IF
Saludos
http://www.theemulator.tk