Funcion para calcular el Digito verificador en EXCEL

Si te pareció útil. Comparte

¿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!

 

 

Written By José Miguel Concha Parra

9 Comments on “Funcion para calcular el Digito verificador en EXCEL

  1. Germán Responder

    mayo 22, 2017 at 9:33

    Excelente!!!!!!
    Gracias por tu aporte.

    • Eric Concha Responder

      mayo 22, 2017 at 12:00

      Nos alegra que te haya servido, gracias por comentar.

  2. ameyvi Responder

    julio 20, 2017 at 4:09

    genial!!!! gracias

  3. Arafath Responder

    julio 20, 2018 at 3:11

    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 😉

  4. Luis Hernan Responder

    enero 16, 2019 at 12:14

    hola, no se en que puedo estar fallando, no me funciona y me arroja el mensaje ¿NOMBRE? si alguien me puede ayudar por favor?

    • José Miguel Concha Parra Responder

      enero 16, 2019 at 4:23

      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)

  5. Ernesto Manríquez Mendoza Responder

    marzo 23, 2019 at 2:54

    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.

    • José Miguel Concha Parra Responder

      marzo 26, 2019 at 8:14

      Gracias a ti por tu aporte Ernesto!

  6. Oscar Responder

    julio 11, 2019 at 12:29

    Muy buena la rutina, muchas gracias.

Deja un comentario