Estás mirando la versión 3 de mi sitio web, para ver la última versión por favor anda a juque.cl

juque

Juan Pablo Aqueveque: Ingeniero de Sistemas, Diseñador y Desarrollador Web que reside en Temuco, Chile.

Validar Rut en Excel

Publicado por Juan Pablo el 14.Jun.2006 | Comentarios (6)

Un validador más que se une a la familia: PHP y Javascript. A propósito, el otro día hice una versión más reducida del validador en Javascript, a ver si en estos días la publico.

Constantemente me llegan correos preguntándome cómo hacer un validador de Rut para Microsoft Excel, lamentablemente no tengo idea de Visual Basic, así que sólo podía responder con un "intenténtalo tu mismo leyendo el algoritmo del módulo 11". Pero ayer me ha escrito José Ossa para compartir conmigo una macro que valida el rut en Excel. Aquí están los pasos:

  1. Nuevo Libro Excel
  2. Abrimos el editor de Macros (o también llamado Visual Basic). Herramientas → Macros → Editor de Macros o en su atajo Alt+F11
  3. Una vez abierto el editor hacemos un Insertar → Módulo.
  4. Copiamos el siguiente código:
    Public Function dvrut(rut)
        ' lo unico que no acepta son letras
        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
    
  5. Volvemos al Libro Excel
  6. Asumiendo que el número (lo que va antes del Dígito Verificador) está en la celda A1 nos posicionamos en la celda A2 y escribimos =dvrut(A1), la cual nos devolverá el DV
  7. Otra forma de usar la función es comparándola con un resultado dado, por ejemplo posicionemos en la celda C1 y tipeamos: =SI(dvrut(A1)=B1;"valido";"invalido")

Por supuesto, todo el crédito es del señor José Ossa, gracias José.

Enlace Permanente, Comentarios (6), Publicada en: Código | Recursos

Comentarios

1. judas
14.Jun.2006

Que buen tip, el proximo podria ser para OpenOffice ;-)

nosotros tenemos un microcodigo para validar el rut en PHP [1] , que lo pillamos en la red y lo modificamos un poquitito, quizas a alguien le sirva.

[1] http://foro.php5.cl/viewtopic.php?id=42

2. 0x01
15.Jun.2006

Juque tienes malo el tableless de la derecha con Internet Explorer, saludos :D

3. juan pablo
15.Jun.2006

Sí, lo se. Pero me resisto a limitar el pre.

4. GAM
16.Jun.2006

Para FOX

thisform.text3.value=alltrim(STRTRAN(STRTRAN(STRTRAN(thisform.text3.value,'-',''),'.',''),',','')) Sub_rut=substr(thisform.text3.value,1,len(thisform.text3.value)-1) Sub_DV=substr(thisform.text3.value,len(thisform.text3.value),1) DV=0 Multiplica=2 S=0 for x=0 to len(sub_rut) If multiplica>7 multiplica=2 endif S=S+(val(substr(Sub_rut,len(Sub_rut)-x,1))*multiplica) multiplica=multiplica+1 Next x dv=alltrim(Str(11-MOD(S,11))) If dv="10" dv="K" else if DV="11" DV="0" endif endif If DV=Sub_Dv thisform.text3.value=sub_rut+"-"+sub_dv Else thisform.text3.value="" Endif Return (DV=Sub_Dv)

5. GAM
16.Jun.2006

Gracias me sirvio , aqui esta en FOX

thisform.text3.value=alltrim(STRTRAN(STRTRAN(STRTRAN(thisform.text3.value,'-',''),'.',''),',','')) Sub_rut=substr(thisform.text3.value,1,len(thisform.text3.value)-1) Sub_DV=substr(thisform.text3.value,len(thisform.text3.value),1) DV=0 Multiplica=2 S=0 for x=0 to len(sub_rut) If multiplica>7 multiplica=2 endif S=S+(val(substr(Sub_rut,len(Sub_rut)-x,1))*multiplica) multiplica=multiplica+1 Next x dv=alltrim(Str(11-MOD(S,11))) If dv="10" dv="K" else if DV="11" DV="0" endif endif If DV=Sub_Dv thisform.text3.value=sub_rut+"-"+sub_dv Else thisform.text3.value="" Endif Return (DV=Sub_Dv)

6. Fabian Ramirez
4.Jul.2006

Buena la funcion, lo ideal es guardarla como complemento en Excel, y asi la puedes usar en todos los archivos. Por si acaso aca va: Menu > Guardar como Aca van a la etiqueta de mas abajo Guardar como tipo, y elijen la ultima opcion hacia abajo.(uds elijen el nombre, por ejemplo RUT)

Luego van a Menu > Herramientas >Complementos Aca buscan la funcion por el nombre (en este caso RUT)y le dan un tiket al casillero en blanco, y luego aceptar.

Entonces ahora, la pueden usar en cualquier libro de excell con solo ejecutar =dvrut(celda)