El control valida una cadena numérica «20172543597″
compuesta de 11 dígitos, por lo que previamente deberemos haber
controlado de no haber introducido un valor incorrecto.
Private Sub ValidarCUIT()
‘Recogemos el valor del TextBox que sólo contiene número
Dim cadena as string = Me.TextBox.Text
‘Valores por los que multiplicaremos cada digito del CUIT
Dim loValores() As Integer = {5, 4, 3, 2, 7, 6, 5, 4, 3, 2}
‘Variable donde iremos sumando los valores que obtengamos de multiplicar
‘los digitos del cuit por los números de loValores
Dim loProducto As Integer = 0
For index As Integer = 0 To 9
loProducto += (Me.loValores.GetValue(index) * CInt(cadena.Text.Substring(index, 1)))
Next
‘Sacamos el mod 11 de loProducto
Dim intMod11 As Integer = loProducto Mod 11
‘Restamos el resultado de mod11 a 11
Dim digito As Integer = 11 – intMod11
‘Comprobamos que el valor coincida con el dígito de control introducido por el usuario en el TextBox
Dim dc As Integer = CInt(cadena.Text.Substring(10, 1))
If dc = digito Then
‘El resultado es correcto
Me.TextBox1.BackColor = Drawing.Color.PaleGreen
Else
‘El resultado es incorrecto
Me.TextBox1.BackColor = Drawing.Color.MistyRose
End If
End Sub