En esta entrada vamos continuar
con el tema “impresiones múltiples en Excel”. La diferencia es que queremos “Imprimir
en PDF” o “Publicar en PDF” .
Suponemos que queremos imprimir las
credenciales en PDF para guardarlos en una base de datos, para imprimirlos
luego, o publicarlos en internet. La forma correcta de imprimir o publicar en PDF es mediante la herramienta de “Exportar a PDF” que trae Excel 2007.
En la web hay muchas dudas acerca de cómo publicar en PDF. Está dado por el método que utilizamos para imprimir en la entrada anterior, el método “PrintOut”. Para este caso no nos sirve ya que debemos imprimir una serie de documentos, guardarlos en una ubicación determinada y darles un nombre.
En esta oportunidad vamos a
utilizar el método “ExportAsFixedFormat”. Este método nos permite publicar en
PDF o XLS. Tiene una serie de parámetros a configurar, sin embargo vamos a ver
los principales.
Comprensión del código:
El código a utilizar es el
siguiente:
----------------------------------------------------------------------------------------------------
Sub imprimir()
' PabloFSix
' Excelminiapps.blogspot.com
inicio = Range("D14").Value
fin = Range("F14").Value
For i =
inicio To fin
Range("C5").FormulaR1C1 =
i
archivo = Range("D17")
& "\" & "socio" & Range("C5") &
".pdf"
ActiveSheet.ExportAsFixedFormat
Type:=xlTypePDF, Filename:=archivo
Next
Range("C5") = ""
End Sub
----------------------------------------------------------------------------------------------------
·
Se definen dos variables, una llamada “inicio”
que hace referencia a la celda que contiene el numero de socio de inicio de la
impresión y la otra llamada “fin” que hace referencia a la celda que contiene
el numero de socio hasta el que deseamos imprimir.
·
Por otro lado se utiliza un “for-next” que hace
la recurrencia o el bucle de impresión. Fíjense también que hace que el rango
que contiene el número de socio se vaya actualizando antes de proceder a la
impresión.
·
El método “ExportAsFixedFormat” que se encuentra dentro del “for-next” tiene
ese formato de definición. Se setean dos parámetros el primero es el tipo de
archivo, PDF o XLS y el segundo la definición del archivo, es decir el nombre y
ubicación. Para eso se definió la variable archivo.
·
Luego al terminar el proceso volvemos a cero el
campo “socio n°”.
Como ven es sencillo el procedimiento
pero se utiliza otro método diferente del “PrintOut”.
Recuerden que se utiliza un
ejemplo para hacer más didáctico el tema, pueden utilizar el método para
múltiples aplicaciones.
Espero que les guste la idea. Éxitos!
Keys:
19 comentarios:
Esto me sirvio muchisimo!!!!!! Mucgas gracias.
Tengo un problema, la macro solo funciona si es que los numeros de "socio" (segun el ejemplo de ahora) son consecutivos.
Como puedo hacer para que siga imprimiendo si, por ejemplo, del rango 1 a 6 no está el numero 5?
Gracias!!
Hola amigo, gracias por escribir y tus comentarios!
Para que imprima siempre tienes que tener un Pseudo "ID" con números consecutivos así corre la macro. Si tu tienes un ID, lo que deberías hacer es designarle el Pseudo Id consecutivo. Ejemplo:
--------------------
Pseudo ID ID
1 2
2 6
3 7
4 22
...
---------------------
El pseudo ID es el que utilizaríamos para la macro, puedes incluso ocultarlo. Espero te sirvan nuestros comentarios. Saludos
hola,
me ha sido de mucha utilidad varios de tus tutoriales...
Muchas gracias por todo..
Muchas gracias por compartir esto que es tan útil.
¿Cómo hacer para que, al construír el nombre del .pdf, pueda agregar más datos variables, por ejemplo, que cada .pdf sea nombrado además de con el número, con el nombre de cada socio?
Hola amigo, cómo estas!
Si revisas el código te darás cuenta que el nombre se forma de esta manera "archivo = Range("D17") & "\" & "socio" & Range("C5") & ".pdf"
Es decir que puedes construir el nombre que quieras cambiando las variables y la concatenación del texto. Espero te haya servido el comentario. Recuerda que también nos puedes escribir directamente desde el formulario de contacto. Saludos
Muchas gracias por tu respuesta Juan Pablo.
He intentado lo que me sugieres de esta manera:
archivo = Range("S14") & "\" & Range("H6") & " " & Range("S15") & ".pdf"
Donde:
S14 es la ubicación de los .pdf
H6 es mi número consecutivo de socio, (o cliente en mi caso)
S15 contiene el resto del texto que quiero que forme parte del nombre de mi archivo.
Al echar a andar el código, genera el primer archivo y me da un error que dice: "No coinciden los tipos".
¿Qué me falta?
Hola Juan Pablo,
Nuevamente gracias.
Resolví mi problema poniendo junto el lugar donde se guardará y el nombre del archivo:
archivo = Range("S14")
En S14 está toda la ruta donde quiero guardar el archivo y también el nombre del archivo.
De esta forma se guardan los diferentes archivos en los directorios que les corresponden.
Como en el caso que comenta nuestro amigo Agustín Hernández anteriormente, mis números de socio, no son consecutivos y me gustaría poder brincar aquellos registros que no tienen información.
Saludos y gracias
Gracias por tus comentarios amigo! No nos diste tiempo de responder..
Nos alegra que lo hayas podido solucionar.
Saludos
Juan Pablo me auno a las felicitaciones a tu persona por tan excelente aporte. Te agradecería por favor indicarme la variación del código cuando en una página muestra en vez de uno, cuatro fichas; ya que he intentado adaptarlo a mi archivo pero lamentablemente no he podido lograr el objetivo.
Gracias,
Carlos Carnero Gálvez
Sólo para precisar en la página 2, los items sería 5,6,7 y 8; en la página 3: 9, 10, 11 y 12; y así sucesivamente.
Gracias,
Carlo
Hola amigo, cómo estas! Gracias por comentar!
En realidad, como siempre, aquí utilizamos plantillas (las mas simples y representativas posibles) para mostrar la idea y cómo se hace. Nada evita en tu caso que puedas crear varias fichas en una hoja. Por ahí necesitas entender mejor el procedimiento. Sino nos puedes escribir directamente mediante el formulario de contacto. Saludos
Hola.
Muchas gracias por el tutorial.
He copiado todo como indicas y al poner en funcionar la macro me dice:
http://s30.postimg.org/592mtckqp/Captura1.jpg
y después si accedo al editor de macros y lo intento poner a funcionar desde ahí me dice:
http://s15.postimg.org/npe0w6ca3/Captura2.jpg
Muchas gracias!
Un saludo
Hola. Llevo poco tiempo con macros y se me hace más fácil comprender con los ejemplos mirándolos en los archivos, si se pudiese descargar los ejemplos seria genial. No aparece donde se ponen las macros en tu descripción. Saludos.
Hola amigo, cómo estas! Gracias por escribirnos!
En cuanto a tu consulta, sino sabes grabar las macros es mejor que revises algún articulo de los cuales utilizamos macros. Es lo principal que debes saber para empezar, con eso vas a ver que es más fácil todo.
Esperamos tus comentarios.
Saludos
MUUUUUUUUUUCHAAAAASSSSSSS GRACIAS AMIGO EXCELENTE! ME MATÉ BUSCANDO PERO LO ENCONTRÉ! MIL GRACIAS! SALUDOS, ESPERO QUE NOS SIGAS AYUDANDO...
De nada amigo! Gracias por tus comentarios!!!
La solución más elegante, sencilla y útil que he encontrado hasta ahora. Un abrazo desde Colombia y muchas gracias por tan excelente aporte.
Gracias Amigo! Saludos
Muchas gracias!
Algo asi, habia tenido que leer en excelogía, la verdad es que no lo he aprendido todavia de la forma correcta, pero es buenisimo!
Publicar un comentario