EXCEL PDF - Apoyo, Quiero llenar un formulario de PDF con datos de una lista de Excel, pero q me cree un archivo por cada línea

Alguien que me pueda apoyar, tengo un formulario en PDF que yo hice, quiero llenarlo con los datos de una lista que tengo en excel, para que me haga un formato por cada línea.

Son miles de nombres con miles de datos y necesito un archivo por cada uno, me llevaría una eternidad. ¿Hay algún programa o manera de enlazar el formulario con la lista de Excel?

1 respuesta

Respuesta
1

[Hola

Hay dos formas de lograrlo, una es usar "SendKeys" (con la "inestabilidad" conocida que tiene) y la otra es usar el objeto Acrobat a través de VBA (lo que no es tan simple). En el segundo caso necesitarías tener sí o sí instalado el Acrobat Pro o el Acrobat Reader DC pero con la herramienta "Editar PDF" habilitada (es de pago) y con el usuario de Acrobat logueado (es de pago).

Aquí un ejemplo:

Enlace

Para enviar la información de varias personas debes usar un bucle y que cada vez el archivo se guarde con otro nombre (que tú podrías manejar). Al ver el archivo verás que no es tan simple pero el ejemplo te ayudará a entender como hacer.

Saludos]

Abraham Valencia

Donde esta esa opción de SendKeys??

Si tengo el Acrobat Pro Pagado, donde puedo modificar los campos?

En el archivo del enlace están los dos métodos mencionados, incluyendo SendKeys, aunque dada la cantidad de datos que mencionas no creo que esa sea la solución.

Sobre modificar campos, yo sugiero ver bien el ejemplo, los objetos de los formularios en pdf tienen nombre, y en el ejemplo de VBA en Excel se llenan dichos objetos porque justamente se conocen esos nombre. Como comento, no es tan fácil, por eso insisto en tratar de entender cómo trabaja la macro que usa el objeto Acrobat.

Abraham Valencia

Modificando el archivo que me compartiste, con la opción SendKeys, logré llenar mi formato, pero únicamente me crea el de la primera línea de datos.

¿Cómo le hago para que me cree uno por cada línea?

Gracias.

[Hola Nuevamente

Si prefieres usar SendKeys, lo que tienes que hacer es ampliar el rango del "For Each", probablemente solo colocaste/usaste el correspondiente a la línea que mencionas y no a las demás, pero por supuesto como se usa "Tab", también depende de orden de tabulación del formulario para que se envíen los datos a donde corresponde.

Yo no puedo decirte como hacerlo con exactitud ya que, primero, no conozco tus archivos y segundo, no olvides que este foro, como casi todos, es un foro en donde colaboramos ad honorem en nuestros (pocos) tiempos libres. Sugiero, y disculpa la insistencia, que sobre todo trates de entender cómo funciona la opción que estás usando, una vez hecho eso la modifiques para que te sea útil y ya sobre tus avances y preguntas puntuales te volvemos a dar una mano.

Abraham Valencia

Esta es la Macro de SendKeys:

Sub PulsacionesaPDF()

Dim Celda As Range
Dim objShell As Object

Set objShell = CreateObject("WScript.Shell")
objShell.Run ThisWorkbook.Path & "\Formulario.pdf"

Application.Wait (Now + TimeValue("0:00:03"))

For Each Celda In Hoja1.Range("A2:R2")

SendKeys "{TAB}"
SendKeys Celda.Value, True
Application.Wait (Now + TimeValue("0:00:01"))

Next Celda

End Sub

Con ello me crea un solo formato PDF.

¿Cómo modifico ese código SendKeys para que me cree muchos formatos PDF por cada fila?

Ah, te entendí mejor, no es que quieras enviar varias filas de Excel a un único formulario pdf sino que quieres que cada fila sean datos que se envían a ese formulario pdf y que se guarde cada uno con un nombre distinto. De ser eso, con SendKeys es algo complicado, tendrías que enviar pulsaciones para que abra el menú "Archivo" del pdf, luego "Guardar como"; luego elegir, enviando un "Enter", la carpeta deseada (rezando para que esté entre las predeterminadas) y después enviar el nombre que quieras para el archivo creado al cuadro de diálogo correspondiente y hacer que se "presione el botón "guardar"... y así repetir ese procedimiento para cada formulario que desees. Intenta con un solo archivo hacer todo eso, solo fíjate que pulsaciones simulando teclas enviar para abrir cada menú y/u opciones. Ah, claro, dada la "inestabilidad" de SendKeys, no se si ligará el 100% de las veces y/o sí "soportará" hacerlo muchas veces seguidas.

Abraham Valencia

PD1: Yo usaría el objeto Acrobat

PD2: Como ves, algunas cosas en programación no son tan simples

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas