Funcion para calcular el Digito verificador en EXCEL

¿Como saber el Dígito Verificador del Rut?

Valida-Rut
Public Function dvrut(rut)
rut = Replace("0000" & rut, ".", "", 1)
If InStr(1, rut, "-") > 0 Then rut = Left(rut, InStr(1, rut, "-") - 1)
rut = Right(rut, 8)
suma = 0
For i = 1 To 8
suma = suma + Val(Mid(rut, i, 1)) * Val(Mid("32765432", i, 1))
Next i
dv = 11 - (suma Mod 11)
If dv = 10 Then dv = "k"
If dv = 11 Then dv = 0
dvrut = dv
End Function

Para agregarla debemos ir a Programador->VisualBasic.. en la columna de la izquierda sobre la carpeta que dice modulos botón derecho->insertar->modulo. Sobre la ventana que se abre hay que copiar el código anterior y guardamos.

En nuestra hoja de Excel debemos escribir =dvrut(CELDA)  y nos dara el digito verificador..

Si quieres algo mas directo que te diga inmediatamente si esta correcto o incorrecto utiliza esta versión del código:

Public Function dvrut(rut)
arut = UCase(rut)
rut = Replace("0000" & rut, ".", "", 1)
If InStr(1, rut, "-") > 0 Then rut = Left(rut, InStr(1, rut, "-") - 1)
rut = Right(rut, 8)
suma = 0
For i = 1 To 8
suma = suma + Val(Mid(rut, i, 1)) * Val(Mid("32765432", i, 1))
Next i
dv = 11 - (suma Mod 11)
If dv = 10 Then dv = "K"
If dv = 11 Then dv = 0
If Right(arut, 1) = CStr(dv) Then dvrut = "Correcto"
If Right(arut, 1) <> CStr(dv) Then dvrut = "Incorrecto"
End Function

Con este código escribirá “Correcto” o “Incorrecto” según corresponda.

Suerte!

Picture of José Miguel Concha Parra

José Miguel Concha Parra

16 comentarios

  1. Muchas gracias habia estado luchando hace bastante tiempo, y no sabia usar bien las planillas de calculos (programas), me sirvió mucho para mis calculos e identificacion, agradecidos por ser solidarios y compartir algo que los programadores son reacios a cooperar 😉

    1. Hola Luis,
      Estas usando la primera o segunda versión del código? De todas maneras pareciera que hay un problema con la referencia a la celda. Recuerda que para utilizar la función debes usar =dvrut(Celda va Aqui)

  2. Muchas gracias por tu gran macro.

    La estaba adaptando a Access y estoy usando la primera versión, porque empotraré la validación misma del RUT en el evento BeforeUpdate de mi formulario. Sin embargo, tuve que anteponer lo siguiente para usar la macro con declaraciones explícitas:

    Dim Suma As Integer
    Dim i As Integer
    Dim dv As Variant

    Gracias, y te seguiré con más trucos de VBA.

  3. hola consulta tengo una planilla excel con los rut listo con guion y todo y necesito saber cuantos de estos son con digito verificador K, pero no se que formula utilizar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicaciones recientes

Anuncios