Compañeros(as) desde ya se agradece cualquier ayuda o sugerencia.
Bueno les comento que tengo este codigo que es el rut chileno en otros paises me parece llamado dni, el tema es validar y me genere el digito verificador en el texbox siguiente que me lo arroje ahi:
Código:
Private Sub txtRut_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Integer
largo = Len(txtRut)
Suma = 0
For i = 1 To 8
If largo = 8 Then
rut = Right(txtRut, 8)
Suma = Suma + Val(Mid(rut, i, 1)) * Val(Mid("32765432", i, 1))
Else
rut = Right(txtRutMantenEgresoFondos, 7)
Suma = Suma + Val(Mid(rut, i, 1)) * Val(Mid("2765432", i, 1))
End If
Next i
Dv = 11 - (Suma Mod 11)
If Dv = 10 Then Dv = "K"
If Dv = 11 Then Dv = 0
txtDv = Dv
End Sub
Con este codigo me funciona super bien la aplicacion pero tengo que hacer muchas veces este mismo codigo pero con distintos nombres para los textbox, entonces pensaba crear un modulo y dentro de ese modulo, crear una funcion con un parametro y pasarle el valor de el textbox de ese momento.
La funcion la tengo creada de esta forma:
Código:
Function digitoVerficadorRUT(rut As Double) As String
Dim i As Integer
largo = Len(rut)
Suma = 0
For i = 1 To 8
If largo = 8 Then
rut = Right(rut, 8)
Suma = Suma + Val(Mid(rut, i, 1)) * Val(Mid("32765432", i, 1))
Else
rut = Right(rut, 7)
Suma = Suma + Val(Mid(rut, i, 1)) * Val(Mid("2765432", i, 1))
End If
Next i
dv = 11 - (Suma Mod 11)
If dv = 10 Then dv = "K"
If dv = 11 Then dv = 0
'txtDv = Dv
End Function
Pero al ejecutar la aplicacion cuando apreto el enter no me muestra en digito verificador en el siguiente textbox donde quiero que aparesca el digito verificador, nose que hago mal.
Asi llamo a la funcion y con este evento.
Código:
Private Sub txtRutMantFichaTrabajadores_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
txtDv.Text = digitoVerficadorRUT(txtRutMantFichaTrabajadores)
End Sub
Ojala puedan guiarme....desda ya muchas gracias.