Tutorial Excel para Consultas DNI RENIEC
Tutorial Excel para Consultas DNI RENIEC: En este artículo te explicaré desde cero como realizar una macro, la cual conecte Excel con un sitio web que cuenta con información de RENIEC. Los datos que arrojen las consultas serán almacenados en nuestra hoja de cálculo, teniendo la opción de realizar múltiples consultas, por ahora solo podremos obtener a apartir de un dni los nombres y apellidos completos, a continuación mas detalles.
¿Desde que sitio web obtendremos los datos?
Usaremos una url que se genera al realizar una consulta en el portal del JNE (Jurado nacional de elecciones), al parecer se dejó de forma adrede para que otros sistemas tomen esta información, no podemos saber hasta cuando funcione, pero ya lleva años estando activa.
También debemos resaltar que solo podremos obtener información de personas mayores de edad.
Para probar la url cambie los valores «nnnnnnnn» por el número de su DNI.
http://aplicaciones007.jne.gob.pe/srop_publico/Consulta/Afiliado/GetNombresCiudadano?DNI=nnnnnnnn
Url exacta desde donde obtendremos la información de las consultas de DNI.
Programando desde Excel
DESCARGA EL ARCHIVO
Descargar Consulta DNI Gratis.xls
A continuación dejo las macros utilizadas y su respectiva explicación.
Para realizar consultas individuales necesitamos de este código, he dejado comentarios explicando cada una de las líneas.
Módulo 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
Option Explicit 'para obligar a declarar todas las variables Sub ConsultaDNI() On Error Resume Next 'para saltar los errores Dim IE As Object 'variable para internet explorer Dim Nombres As Object 'variable que almacenará el resultado de la consulta de dni Dim rpta As String 'variable para verificar la consulta Dim Dni As Long 'variable para almacenar el N° de DNI With Hoja1 .Range("d7:g9").ClearContents 'eliminamos el contenido de estas celdas antes de realizar la consulta Dni = .Range("E5").Value If Val(Dni) = 0 Then 'validamos que el dni sean de tipo numérico, si es texto la macro termina .Range("d7").Value = "Dni incorrecto" Exit Sub End If 'se crea la conexión a internet explorer Set IE = CreateObject("InternetExplorer.Application") With IE 'navegamos la url indicada, al final colocamos la variable dni .Navigate "http://aplicaciones007.jne.gob.pe/srop_publico/Consulta/Afiliado/GetNombresCiudadano?DNI=" _ & Format(Dni, "00000000") .Visible = False 'el valor es falso para no ver cuando la web abre End With Do Until IE.ReadyState = READYSTATE_COMPLETE 'esperamos que cargue totalmente la web antes de extraer los datos DoEvents Loop Set Nombres = IE.Document.body 'obtenemos los nombres completos 'revisamos el codigo fuente de la web para encontrar posibles errores If InStr(Nombres.innerhtml, "Server Error") > 0 Then .Range("D7").Value = "Dni no Existe en JNE" GoTo Termina End If 'reemplazamos los palotes "|" por espacio vacío, para un tema de presentación rpta = Replace(Nombres.innertext, "|", " ") 'validamos de que el resultado sea válido If rpta = "" Then .Range("D7").Value = "El DNI ingresado no existe ó no se realizó la consulta." Else .Range("D7").Value = rpta End If Termina: 'si la consulta tuvo exito entonces cerramos la conexión y regresamos a excel ya con el resultado. Set IE = Nothing With Application .DisplayAlerts = True End With Application.StatusBar = "Consulta realizada." End With End Sub |
Módulo 2
Consultas masivas
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Option Explicit 'para obligar a declarar todas las variables Sub Consulta_Masiva() Dim i As Integer Dim UltimaF As Integer 'vamos a crear un bucle tomando como último valor el dni ingresado 'en la columna b de la hoja 'consultas múltiples' UltimaF = Range("b65536").End(xlUp).Row 'empezamos el bucle desde la fila 4 hasta la ultima fila encontrada For i = 4 To UltimaF With Hoja1 'tomamos el valor del dni .Range("e5").Value = Cells(i, "b").Value 'realizamos la consulta apoyandonos de la consulta individual Call ConsultaDNI 'el valor obtenido lo colocaremos al costado del dni consultado. Cells(i, "c").Value = .Range("d7:g7").Value End With Next i 'terminamos el bucle MsgBox "Se han realizado todas las consultas.", vbInformation, "Consultas DNI" 'mediante este mensaje indicamos que el proceso ha terminado. End Sub |
1 2 3 4 5 6 7 8 |
Sub limpiar() 'macro para limpiar la información obtenida en la consulta múltiple Dim rpta As Integer rpta = MsgBox("Desea eliminar la información registrada?", vbInformation + vbYesNo, "Elimar Información") If rpta = vbYes Then Range("c4:d500").ClearContents End If End Sub |
Hoja1 (consulta DNI)
Con este código logramos que al ingresar un valor en la celda E5 automaticamente se borre el contenido del rango D7:D9.
Escribimos una macro dentro del evento de la hoja
1 2 3 4 5 |
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$E$5" Then Range("d7:g9").ClearContents End If End Sub |
Espero compartan este artículo, si alguna explicación no quedó clara, déjenme en los comentarios sus consultas.
REVISA ESTOS TEMAS SIMILARES ↓
SUSCRÍBETE GRATIS
Te convertiré en un experto en Excel, tengo la experiencia y todo el material que necesitas, mi ayuda es totalmente gratuita.
Buenas esta macro me era muy util pero ahora sale con error
DNI NO EXISTE.
Hay alguna forma de actualizarlo. Gracias
Ya encontré la solución para la consulta RUC, estoy viendo la forma de obtener la información del DNI
Ya encontré la solución para la consulta RUC, estoy viendo la forma de obtener la información del DNI
Gustavo un gusto saludarte, ya no funciona el aplicativo 🙁
Buenas tardes :asies estimado Gustavo la apliacion me ayudo bastante hasta hace 2 semanas ya no funciona no hace consultas favor si podrias actualizarla estaria bastante agradecido
de ante mano, muchas gracias por compartir esa app.
Hola buen dia, Sr Gustavo, favor su apoyo no hace consultas los dni me manda un error. si puede revisarlo haciendo consultas desde excel y me responderia estaria muy agradecido es muy necesario para mi uso .muchas gracias
Hola, vuelve a descargarlo. Acabo de probarlo y funciona bien.
Hola Gustavo un gusto saludarle
Como podríamos manejar este tema, y como podríamos obtener los datos del RENIEC segun este POST.
https://tutorialesexcel.com/blog/consulta-foto-dni-reniec/
Muchas Gracias
Joel, no conozco esa forma o método.
HOLA COMO SE PUEDE ADACTA EL BUSCADOR DE NOMBRE POR CEDULA EN COLOMBIA
Jhon, indicame desde que página se obtienen los datos para revisar si se puede obtener la información que ncesitas.
Hola Gustavo
Gusto en saludarte
Dos preguntas por favor
1. En La Aplicación de conexión Ud. usa el Set IE como Objeto ¿Se puede Usar el Chrome como navegador de Conexión y cual seria sus parámetros.?
Set IE = CreateObject(«InternetExplorer.Application»)
2. ¿La macro que realizaste funciona en excel 2016? descargando el archivo adjunto me funciona pero si copio exactamente todos tus códigos en un libro nuevo de excel 16 en donde quiero que me funcione Su macro, No me funciona me sale error en:
Do Until IE.ReadyState = READYSTATE_COMPLETE
Eh tratado de ver todos las posibles soluciones y nada solo me funciona en su libro que descargue de esta página.
Alguna ayuda Por favor????
Gracias de Antemano
Cesar la librería solo es para internet Explorer, no hay para Chrome, si no te funciona en otro libro es por que no has activado la referencia de «Microsoft internet controls». Entra al editor de visual basic, luego en la parte superior busca el menu «Referencias …» y busca «Microsoft internet controls» y activalo. Este paso hazlo en tu nuevo libro donde quieres usar las macros.
Muchas Gracias por su respuesta
Hola Gustavo una consulta tus consultas a la Reniec incluyen Foto del consultado o es sin foto y quisiera saber su costo.
otra interrogante como obtendris los datos de este link:
site:» cel.reniec.gob.pe» nuc
Liza las consultas no incluyen fotos, para eso debes de pagar el servicio a RENIEC.
consulta curso ecperto excel