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:
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.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
La funcion la tengo creada de esta forma:
Código:
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.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
Asi llamo a la funcion y con este evento.
Código:
Ojala puedan guiarme....desda ya muchas gracias. Private Sub txtRutMantFichaTrabajadores_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) txtDv.Text = digitoVerficadorRUT(txtRutMantFichaTrabajadores) End Sub