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:
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
Por supuesto, todo el crédito es del señor José Ossa, gracias José.
Enlace Permanente, Comentarios (6), Publicada en: Código | Recursos
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.
Juque tienes malo el tableless de la derecha con Internet Explorer, saludos :D
Sí, lo se. Pero me resisto a limitar el pre
.
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)
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)
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)