Macro que cree un archivo PDF interrelacionando los datos ingresados y el formato prediseñado para el PDF

DanteAmor

Te escribo nuevamente para seguir con el ejemplo que me ayudaste anteriormente.

Entonces ahora ya tengo en la hoja "Registro" los datos digitados:

Como te puedes dar cuenta en la hoja "Registro" tengo los siguientes datos:

ID Cliente: E6

Nombre del Cliente: E8

Edad del Cliente: E10

Tipo de Cliente: E12

Item #1: C17     Unidades Item #1: J17   Presentacion Item #1: K17

Dosis Item #1: D18

Item #2: C21     Unidades Item #2: J21   Presentacion Item #2: K21

Dosis Item #2: D22

Item #3: C25     Unidades Item #2: J25   Presentacion Item #2: K25

Dosis Item #2: D26

y así sucesivamente si hubieran mas.

La macro que solicito es que ahora con esos datos que tengo, los interrelacione con el formato prediseñado que tengo para crear el documento PDF. Ese formato prediseñado se encuentra en la hoja llamada "Diseño" la cual es la siguiente:

Se que debe ser algo como esto, pero no soy tan experto como para seguir con el resto que debe hacer la macro:
h1 = Sheets("Registro")
h2 = Sheets("Diseño")
h2.[C7] = Date
h1.[E6] = h2.[M8]
h1.[E8] = h2.[C8]
h1.[E10] = h2.[L9]
h1.[E12] = h2.[C9]
h1.[C17] = h2.[B11]
h1.[J17] = h2.[L11]
h1.[K17] = h2.[M11]
h1.[D18] = h2.[B12]

Y asi sucesivamente pero el problema es que no se como se hace el resto ni como copiar el formato para el resto. 

Me ayudas por favor.

La idea es que una vez copiados esos datos, se genere el archivo PDF con el nombre del ID Cliente y la fecha actual (DD/MMAAAA) ejemplo 6350130404092015.pdf

Tu me ayudaste a hacer un caso muy parecido que es el siguiente, te mando la imagen para que lo recuerdes:

1 respuesta

Respuesta
1

H o l a:

Envíame tu archivo con un ejemplo en la hoja "Registro", con la hoja "Diseño" con el puro diseño y en otra hoja me pones el resultado que esperas. También envíame el PDF resultante.

Recuerda poner tu nombre en el asunto.

s a l u d o s

¡Gracias! 

Listo Dante ya te mandé los archivos que me pediste a tu correo electrónico.

Hola Dante como estas?

Quería averiguar si has podido echarle un vistazo al correo que te envié en donde te enviaba todo lo que me solicitaste.

Quiero valorarte el tiempo que me has dedicado. Te valoré esta respuesta por que deseo cerrarla para poder así, hacerte una nueva solicitud, partiendo del objetivo final que deseo obtener y que tu me ayudes guiándome de como debo empezar a estructurar el libro de excel, en cuanto a la toma de datos, para poder llegar a ese resultado final.

Te anexo la recomendación:

Te recomiendo ampliamente que empieces de nuevo. Cada que avances se hará más complejo y de una vez te digo que tu proyecto ya está muerto por la complejidad que le estás poniendo, va llegar un momento en que no podrás avanzar y necesitarás macros muy complejas y de difícil actualización para lograr lo quieres.

Empieza por poner todos los datos en una hoja a renglón seguido, por ejemplo:

         A                    B                   C                    D               E         F

1    Paciente       Fecha            Número        Unidades      etc       etc

2    Dante           11sep2015           1                50 mg

3    Dante           11sep2015           2                100mg

4    Dante           11sep2015           3                  75mg

5    etc

...

Y de esta base de datos puedes llenar cualquier formato.

¡Gracias!

Me voy a poner entonces en esas, apenas tenga eso que requieres me vuelvo a comunicar contigo para continuar con nuestros proyecto.

Solo una ultima inquietud, según lo que me mandas, por ejemplo al paciente Dante el mismo día (En la misma Visita) le mandas 3 medicamentos. Lo requuieres una fila por medicamento, ¿o si en una misma fila pusiera los 3 medicamentos también serviría?

Por que si es así, ya lo tengo.

Ejemplo:

         A                    B                   C                    D                     E                   F     .................

1    Paciente       Fecha            Número        Unidades      Número       Unidades

2    Dante           11sep2015           1                50 mg                  2                  100mg   .......

...

Es una fila por medicamento y se va a repetir el nombre y la fecha en cada registro.

Lo mejor es que la captura se realice en un formulario, en un formulario capturas el nombre, la fecha y el medicamento; en el formulario podríamos un botón que pase los datos a la base datos o directamente al diseño, el botón se encargaría de repetir el nombre, la fecha y poner el consecutivo por cada medicamento capturado.

Revísalo, envíame lo que requieres en la base de datos, si no requieres la base de datos, entonces solamente pasamos los datos del formulario al diseño. Avísame cuáles serían los datos y te creo un formulario para la captura y veas el funcionamiento.

¡Gracias! 

Vale perfecto reviso lo que me pides y te lo mando.

Listo Dante he pensado en los datos que me pides que necesitas y son los siguientes:

1. Fecha: La fecha es la actual debido a que la idea es que la receta médica se realice en presencia del paciente (En la visita), por lo tanto no se hace necesario que la fecha se deba modificar o escoger, es la fecha del momento en el cual se están diligenciando los datos.

2. Diseños del Formulario:

2.1. Titulo: REGISTRO DE RECETAS MEDICAS

2.2. No. de Identificación: Se debe solicitar por medio de un inputbox (Creo que se llama así) el número de identificación del paciente. Es un Dato numérico. Para las fórmulas que describiré a continuación este dato es la celda E6.

2.3. El nombre del paciente se debe buscar con el número de identificación del paciente (Numeral 2.2) en una base de datos externa. La fórmula que yo tengo para extraer ese dato de la base de datos externa es:

=SI(E6="";"";SIERROR(BUSCAR(2;1/('D:\manager\Consultorio\[Registros.xlsx]CARTERA'!$C$3:$C$20000=E6);'D:\manager\Consultorio\[Registros.xlsx]CARTERA'!$D$3:$D$20000);""))

E6 para esta formula es la celda en donde tengo el número de identificación del paciente. La tengo para que busque ese dato desde la fila 3 hasta la fila 20.000 pero si tu puedes mejorarla diciendole que busque hasta el ultimo dato que halla pues mucho mejor. Esa fórmula me busca el último dato de la tabla que le corresponda a ese paciente.

2.4 Edad: Este dato igualmente lo busco por medio del número de identificación del paciente (Numeral 2.2) por medio de la siguiente fórmula:

=SIERROR(BUSCAR(2;1/('D:\manager\Consultorio\[Registros.xlsx]CARTERA'!$C$3:$C$20000=E6);'D:\manager\Consultorio\[Registros.xlsx]CARTERA'!$AW$3:$AW$20000);"")

2.5. Tipo de Paciente: Este dato igualmente se busca por esta fórmula:

=SI(E14=0;"";SI(E14="";"";CONSULTAV(E14;Constantes!$C$1:$D$8;2;FALSO)))

Los datos de la hoja constantes son estos:

Paciente Particular
Allianz Seguros de Vida S.A.
Axa Colpatria Seguros de Vida S.A.
Colmedica Medicina Prepagada S.A.
Compañía de Medicina Prepagada Colsanitas S.A.
Compañía de Seguros Bolivar S.A.
Medplus Medicina Prepagada S.A.
Seguros de Vida Suramericana S.A.

E14 para este caso es la siguiente fórmula:

=SIERROR(BUSCAR(2;1/('D:\manager\Consultorio\[Registros.xlsx]CARTERA'!$C$3:$C$20000=E6);'D:\manager\Consultorio\[Registros.xlsx]CARTERA'!$AH$3:$AH$20000);"")

Hasta aqui ya tienes todos los datos del encabezado: ID Paciente, Nombres y Apellidos, Edad, Tipo de Paciente.

Ya después de ello vendría el formulario a registrar cada medicamentoque se le receta al paciente entonces se tomarían los siguiente datos:

* Medicamento: tengo una lista de todos los medicamentos y me gustaría en el formulario un cuadro combinado (Creo que así se llama) que uno va escribiendo el nombre del medicamento y automáticamente el va buscando el dato que más se asemeja según lo escrito. Seria buena tener esa opción pues son como 500 medicamentos. Actualmente los tengo escritos en una hoja llamada "Constantes" en la columna "F". Te envío unos ejemplos:

Ac- Free Gel X 30 Ml
Acnoil Gel X 30 Ml
Acnoil Gel X 30 Gr
Actipur Anti-Imperfeccion Color
Active C Rostro X 30 Ml
Acuanova Soft
Advantan Crema X 15 Gr
Advantan Emulsion X 20 Gr
Afelius 100 Spray X 120 Ml

* el segundo dato a solicitar son las unidades de ese medicamento a recetar. Yo las tengo definidas de 1 a 6.

* El tercer dato a solicitar es la presentación en la que viene el medicamento. Los tengo definidos igualmente en la hoja "Constantes" y son estos:

Caja(s)
Cápsulas
Frasco(s)
Sesion(es)
Sobres
Tabletas

* El último dato a solicitar de cada medicamento es: "Dosis" el cual es un Textbox (Creo que se llama así) en donde se debe escribir la manera de como debe ser tomado o administrado el medicamento.

Tu me dirás que más datos necesitas que te envíe o por ahora esos mientras tu me ayudas a realizar el formulario y luego poco a poco vamos realizando el tema del diseño de salida para ser impreso.

H o l a:

Crea una nueva pregunta para crear el formulario. Envíame tus archivos con unos ejemplos para entender de dónde voy a tomar la información.

S a l u d o s

¡Gracias! 

Ok Vale. Incluso te voy a mandar la base de datos externa, la cual siempre va a estar, en el mismo directorio del archivo de Receta medica

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas