Página 1 de 1

[RESUELTO] Macro imprimir PDF en hoja donde se active

Publicado: Dom Sep 11, 2011 6:13 pm
por Galle43
Muy buenas tardes desde Galicia, España.

Llevo tiempo tanto tiempo intentando crear dos macros, que he llegado a la conclusión de que necesito ayuda profesional o amateur antes que volverme loco. Así que si alguien puede ayudarme, con mucho gusto estaría dispuesto a pagarle una cantidad razonable por la solución.
En concreto son dos macros.

La primera consiste en exportar a pdf únicamente el área de impresión de la hoja donde se sitúe el botón que active la macro. La macro finalizaría en la ventana de "guardar como", para que el usuario pueda darle el nombre al archivo y guardar el pdf donde considere.

La segunda macro consiste en hacer lo mismo que la anterior; crear el pdf y directamente adjuntarlo a un correo electrónico (archivo - enviar - documento adjunto en pdf). Si se consigue que el nombre de archivo del pdf sea el de una celda de la hoja sería perfecto.

Necesito ambas macros para insertarlas en aproximadamente 15 hojas diferentes dentro de la misma hoja de cálculo. Es una hoja de cálculo - formulario para una pequeña imprenta, donde los clientes pueden elegir la hoja correspondiente al tipo de trabajo que necesitan (posters, tarjetas... ) y una vez en la hoja con los datos rellenados enviarnos el pdf con la información.

He encontrado en el foro macros parecidas, pero todas me daban problemas de impresión y no logre adaptar ninguna... .

Si alguien puede ayudarme que me mande un mensaje privado o que lo cuelgue en este post. Por cierto, no me importa lo más mínimo que la solución se postee en este foro para ayuda de otros que puedan tener las mismas dudas.

Muchas gracias a todos y mi enhorabuena a este maravilloso foro.

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Mié Sep 14, 2011 3:46 pm
por mauricio
Hola...

Puedo hacerte una extensión con estas dos macros y algún valor agregado por modicos $100 dolares... pero te voy a dar un tip, lo que quieres en mayor o menor medida lo he respondido en estos foros...

Saludos

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Mar Sep 20, 2011 10:02 pm
por Galle43
Hola Mauricio, ¿que tal?. Perdón por responderte con este retraso, pero llevo una semana en la que no me ha sobrado mucho tiempo. Antes de nada mostrarte por alegría por haber recibido tu respuesta en este foro. Son muchas las ocasiones en que tus consejos me han sacado de algún embrollo informático, motivo por el que me alegro de contar con tu ayuda.

En segundo lugar agradecerte tu desinteresado consejo acerca de que ya has colgado soluciones acerca de macros semejantes en tus posts. Las he visto y probado te lo aseguro, pero he perdido tantísimo tiempo y paciencia frente al monitor, que aunque te aseguro que no me sobran el dinero, prefiero hacer esa donación antes que desquiciarme de nuevo. Además, como te comentaba antes, son muchos los consejos anteriores que pagarte... .

Por mi parte trato hecho Mauricio. Espero tus noticias para ver como arreglamos.

Un saludo.

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Mar Sep 20, 2011 10:08 pm
por Galle43
Por cierto, si prefieres puedes enviarme un privado para concretar la forma de pago.

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Mié Sep 21, 2011 9:58 pm
por mauricio
Hola...

Aquí la primer macro en su primero versión, solo tienes que establecer el rango de impresión para todas las hojas en la línea

Código: Seleccionar todo

Const AREA_IMPRESION As String = "A1:G30"
Si tus rangos de impresion son los mismos en todas las hojas, este es el mejor método, si por el contrario, estas áreas cambian en cada hoja, entonces hay que cambiar la logica, ya me diras.

La macro que tienes que ejecutar se llama ExportarPDF y la puedes llamar desde cualquier archivo u hoja de Calc.

Seguimos en contacto.

Saludos

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Jue Sep 22, 2011 10:53 am
por Galle43
Genial Mauricio, intentaré probarlo este fin de semana que ahora mismo estoy liado, pero pinta bien.
El area de impresión cambia en cada hoja, es lo único malo.
Por cierto, cuando puedas hazme saber como pagarte todo esto por favor.

Tan pronto como lo pruebe te lo hago saber.

Un millón de gracias.

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Jue Sep 22, 2011 4:58 pm
por mauricio
Listo, ahora funciona con cada área de impresión de cada hoja, ya no tienes que modificar nada...

Para la segunda macro, dices que es lo mismo, es decir, quieres que solo le agregue la opción de enviar por correo?

Para el pago, puedes hacerlo por PayPal en la siguiente página: http://www.universolibre.org/node/2 usa el botón que dice donar.

Saludos

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Jue Sep 22, 2011 9:27 pm
por Galle43
Mauricio, ¡eres genial tío!. Antes de que haya probado la primera macro, ya la has corregido.

Tan pronto la pruebe te comento como me ha ido, a ver si este fin de semana tengo un rato. Tienes que perdonar, pero estos días ando un poco liado y me faltan horas de sueño... .

Lo de la segunda macro no corre prisa, pero en un principio sería crear el pdf (si el nombre del archivo es el texto contenido en una celda ya sería perfecto) y automáticamente adjuntarlo a un correo nuevo del cliente de correo predeterminado. A partir de allí ya es cosa del usuario, ¿sería posible?.

Lo que si te prometo es que mañana mismo tienes esa donación de cien dolares por Paypal, especialmente si es para ayuda de una ONG.

Muchas gracias y seguimos en contacto Mauricio.

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Jue Sep 22, 2011 9:44 pm
por Galle43
Hecho vía Paypal Mauricio. De todas formas compruébalo por si acaso.

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Vie Sep 23, 2011 5:09 am
por mauricio
Hola Compañero...

Si, esta aportación es para una ONG que funde en mi país, nos dedicamos a dar soporte técnico sin costo a otros ONGs, gracias por tu aportación, te confirmo que ya esta abonada...

Para la otra macro, es muy sencillo tomar el nombre de una celda para que sea el nombre del PDF resultante, solo dime que criterio seguimos, ¿siempre la misma celda, y si es así, cual?...

La macro que ya te hice, pregunta al usuario si quieres abrir el PDF resultante, ¿quieres que solo le agregue la opción de preguntar si quiere enviarla por correo o es una macro separada?...

Saludos y de nuevo gracias...

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Lun Sep 26, 2011 12:19 pm
por Galle43
Hola de nuevo Mauricio, ¿que tal todo?.

Todavía hoy acabo de probar la macro anterior y la función "exportar pdf" funciona de maravilla en windows. Imprime perfectamente el área de impresión y los cuadros de diálogos que has insertado son muy cómodos, gran trabajo.

Lo único malo es que, aunque en Windows funciona de maravilla, en Mac no me exporta el pdf correctamente. Todo funciona igual que en windows, pero en lugar de exportar el archivo en pdf, lo que hace es crear un archivo ods de la página donde se ejecutó la macro y que, sin saber porque, me lo abre con el "draw" ¿¿??. Te lo adjunto por si acaso te sirve de algo.

Si no tiene una fácil solución Mauricio no te preocupes en lo más mínimo Mauricio. El 99% de los futuros usuarios de esa hoja trabajan en Windows; pobrecitos... . Así que no tiene mayor problema.

En Ubuntu lo probaré esta tarde, pero viendo que eres amplio conocedor de Linux estoy seguro que estará perfecto.

En lo relativo al nombre de archivo del pdf, ¿sería posible que fuese el texto contenido en una celda de esa hoja?. Una buena posibilidad sería que fuese siempre el de una celda "remota" y que, en mi caso, no utilizaré (como la AA100 por ejemplo). Luego solo habrá que vincular el texto de la celda que contiene el nombre que me interese para el pdf a la celda AA100. No se si me he explicado muy bien Mauricio.

En la segunda macro que te comentaba, la que crea el mail con el pdf adjunto, si no tienes inconveniente me gustaría que fuese una macro separada.

En esta macro el nombre del archivo pdf sería el contenido en la fila AA100 por ejemplo. Lo que te comentaba antes.

Y una pregunta, pero esto ya es "de nota" y no quiero abusar Mauricio. ¿Sería posible que además de adjuntar el pdf, utilizase una celda para rellenar el destinatario del correo automáticamente y con otra celda rellenase el "subject·" del mail?. Vamos, que el usuario se encuentre con el E-mail redactado, el archivo pdf adjunto y el subject completo. Vamos, que el usuario revise el correo y solo tenga que pulsar el "send".

Esto último supongo que no será fácil ya que entramos en la configuración del correo electrónico predeterminado del usuario, ¿no?. Te lo comento solo por ver si es posible, aunque personalmente me sorprendería mucho.

Eso es todo Mauricio, una vez más muchísimas gracias por tu gran ayuda y trabajo. Un fuerte saludo desde Galicia.

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Lun Oct 03, 2011 6:18 pm
por mauricio
Hola...

La macro la he desarrollado bajo ArchLinux, no "deberías" tener problemas en otras distribuciones, ya probaste en Windows, desafortunadamente no tengo un MAC donde poder probar para ver por que no trabaja ahí...

En relación a las macros y para poder finiquitarlo lo más pronto posible, tratemos de separar los puntos...

1.- Primer macro que exporta a PDF, ¿esta la podemos dar por terminada?, tengo un poco de duda respecto a si en esta también quieres tomar el nombre de una celda, no veo el caso soliciar al usuario lugar y nombre, si se va a tomar de una celda, por favor, aclareme esto...

2.- Respecto a la segunda, que exporta y adjunta, quiero saber si... ¿se le solicitará al usuario lugar y nombre?, si no es necesario conservar el PDF podemos; generar el PDF con el nombre de usa celda en concreto (AA100) y guardarlo en la carpeta temporal solo mientras se adjunta el correo, y si, es posible establecer el campo destinatario y con copia (CC), no así el Subject, esto si tendría que capturarlo el usuario...

Por favor, espero tus comentarios concretos para poder terminar las macros.

Un abrazo

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Mié Oct 05, 2011 12:07 am
por Galle43
Hola de nuevo Mauricio.

En lo relativo a las macro para exportar el pdf el único problema que he visto en Windows es que el archivo final no tiene la extensión pdf, motivo por el que Windows te pregunta con que aplicación quieres abrir el archivo al no tener la extensión pdf anexa. Te adjunto el archivo que me genera para que le eches un vistazo.

Acerca de las dudas de las dos macros te comento:

1- Macro para solo "exportar en pdf": lo de antes, lo único que le falta es que el nombre de archivo tenga la extensión .pdf a continuación. Por lo demás es perfecta Mauricio, pregunta donde se va a guardar y el nombre del archivo; además tus comentarios adicionales son de agradecer.

2- Macro "exportar y adjuntar al correo": tu idea es perfecta. No necesito que guarden el pdf (por lo se puede guardar en temporales), el nombre del pdf lo puede tomar de la celda AA100.
El campo del destinatario lo puede tomar de cualquier otra celda "apartada", por ejemplo la AA99 o cualquier otra que consideres. No es necesario incluir un cc o un bcc, con un destinatario es suficiente.

Resumiendo, si el usuario se encuentra con el mail creado, el pdf adjunto (con el nombre de la celda AA100), la dirección del destinatario escrita y que solo tenga que escribir el subject y darle al botón de "enviar", entonces Mauricio esto será el mayor éxito informático desde la creación del Tetris.

Un saludo desde Galicia.

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Mié Oct 05, 2011 12:10 am
por Galle43
Opss!!, antes no me adjuntó el archivo que te comentaba. Sospecho que será porque no lleva extensión.

Lo adjunto ahora comprimido en un zip para que la web no me la rechace.

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Mié Oct 05, 2011 1:18 am
por mauricio
Hola...

Tu archivo lo pude abrir sin problemas, aun sin extensión, el visor que uso detecta el tipo de archivo de acuerdo a su estructura, no de acuerdo a la extensión.

1.- Para la primer macro (de hecho para las dos), he agregado una comprobación de extensión, nos aseguramos de que tenga extension PDF, probrecito Win, no sabe cuando no la tiene, jejejeje...

2.- Para esta macro, tomamos como nombre del archivo PDF la celda AA100 de la hoja activa, puedes cambiar esta celda cuando quieras, solo editas la constante correspondiente, si la celda esta vacia, te pondra el nombre ArchivoPDF[1-1000], es decir, con un número aleatorio entre 1 y 1000, el destinatario lo toma de la celda AA99 de la hoja activa, esto quiere decir que puedes establecer nombres de archivos y destinatarios en cada hoja, igual puedes cambiar las constantes como el tema (asunto) del correo. He agregado una validacion para saber si estamos en Linux o Windows, las he probado en estos dos entornos.

Por favor, checalas y confirmame, si no hay nada que corregir, damos por terminado y cumplido el compromiso.

Un abrazo

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Jue Oct 06, 2011 2:32 am
por Galle43
GENIAL!!!.

He probado por encima las dos Macros en mi ordenador y en mi windows funcionan muy por encima de mis expectativas iniciales, una maravilla. La exportación a Pdf funciona y ahora ya le añade la extensión pdf al archivo; pero lo que me ha dejado muy, pero que muy contento es la opción de adjuntar el pdf al correo, perfecta.

La macro abrió perfectamente mi cliente de correo predeterminado (Thunderbird) y creó el correo y el pdf con la información contenida en las celdas que hablamos. Los cuadros de diálogo ya he visto que puedo editarlos yo fácilmente para ponerlos un poco mas encajado hacia mis necesidades. Espero no estropear nada... .

El pdf creado es perfecto ya que solo incluye el área de impresión donde se activa (esto me dio algún problema al principio, hasta que me di cuenta que tenía mal definida el área de impresión, mi culpa...), y tu idea del numero aleatorio encaja perfectamente en lo que busco.

El único error que le he visto (por decir algo) es en Mac. La opción exportar pdf funciona, aunque tiene la tontería que también incluye la extensión ods antes de pdf si el usuario no cambia el nombre de archivo(macrosforo.ods.pdf); nada importante Mauricio.
La opción Adjuntarpdf es la que falla ya que no consigue abrir el cliente de correo predeterminado y ahí se queda. De todas formas y como ya te comenté no me importa mucho como funcione esto en Mac OS X, no te preocupes en lo más mínimo.

Resumiendo Mauricio; un gran y excepcional trabajo del que te doy las gracias enormemente, además de felicitarte una vez más por tu labor en la ONG que desarrollas. Un gran trato Mauricio del que me siento muy contento del resultado.

Gracias por todo y un auténtico placer.

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Mar Mar 13, 2012 3:39 pm
por vicenbmw
Acabo de registrarme y no veo la macro que estas generando para enviar una seleccion de una hoja excel por correo

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Mar Mar 13, 2012 3:42 pm
por vicenbmw
Hola mauricio puedes ayudarme en ver donde esta la macro que has diseñado?

Re: Macro para imprimir PDF de la hoja donde se active la ma

Publicado: Mar Mar 13, 2012 3:45 pm
por mauricio
Es que no hago macros para Excel, la que esta en este hilo es para OpenOffice.org/LibreOffice, si te sirve, puedes descargarla sin restricciones...

Saludos

Re: [RESUELTO] Macro imprimir PDF en hoja donde se active

Publicado: Mar Mar 13, 2012 3:50 pm
por vicenbmw
pero como la descargo

Re: [RESUELTO] Macro imprimir PDF en hoja donde se active

Publicado: Mar Mar 13, 2012 4:14 pm
por mauricio

Re: [RESUELTO] Macro imprimir PDF en hoja donde se active

Publicado: Vie Ene 03, 2014 9:28 pm
por kersian
Mauricio disculpa que reviva el post, pero es posible exportar a PDF solo una hoja y no todo el archivo?
Gracias!

Re: [RESUELTO] Macro imprimir PDF en hoja donde se active

Publicado: Sab Ene 04, 2014 12:28 am
por mauricio
Si, si es posible...