MACRO de excel para imprimir varias hojas de un mismo libro
Tengo un libro de excel que posee varias hojas. Necesito un MACRO que me permitiera imprimir las hojas que desee a la vez. Cada hoja esta predeterminado el bloque de impresión y la configuración de la página y formato. Solo se debe imprimir una página por hoja.
Agradecería mucho su ayuda, puesto que es un trabajo tedioso tener que hacerlo mecánicamente.
- Compartir respuesta
1 respuesta más de otro experto
Una opción, sería crear un formulario con toda la lista de hojas, con la opción de que elijas las hojas que desees y un botón para enviarlas a imprimir. La idea es esta, presionas un botón en alguna hoja de tu excel y que te aparezca esta ventana con todas las hojas de tu libro.
Para crear el formulario sigue los siguientes pasos:
Instrucciones para crear un UserForm
- Abre tu hoja de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- En el menú elige Insertar / UserForm
- En el panel del UserForm creas los siguientes controles un Label, un ListBox y un botón.
- Para crear un control selecciona el control del cuadro de herramientas y arrástralo al userform
6. Después de poner el control puedes hacerlo más grande.
7. Presiona el botón "Ver Código"
8. En el panel que te abre, pega la siguiente macro
Private Sub CommandButton1_Click() 'Por.Dante Amor For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) Then h = ListBox1.List(i) Sheets(h).PrintOut Copies:=1, Collate:=True End If Next End Sub Private Sub UserForm_Activate() 'Por.Dante Amor ListBox1.MultiSelect = 1 ListBox1.ListStyle = 1 For Each h In Sheets ListBox1.AddItem h.Name Next End Sub
9. Regresa a tu hoja de excel y realiza lo siguiente para poner un botón en una hoja y poder abrir el formulario.
Macro para abrir el formulario
Sub abrir() UserForm1.Show End Sub
Sigue las Instrucciones para un botón y ejecutar la macro
- Abre tu libro de Excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- En el menú elige Insertar / Módulo
- En el panel del lado derecho copia la macro
- Ahora para crear un botón, puedes hacer lo siguiente:
- Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
- Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
- Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
- Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: abrir
- Aceptar.
- Para ejecutarla dale click a la imagen.
Si tienes dudas avísame.
- Compartir respuesta
Y si quiero que en las lista de posibles páginas a imprimir NO quiero que aparezcan las páginas ocultas? - Maria Padilla
H o l a: hay que poner la condición en esta parte: For Each h In Sheets ListBox1.AddItem h.Name Next. Pero en este espacio del mensaje no se puede poner de manera clara. Pero, con mucho gusto te ayudo con todas tus peticiones. Crea una nueva pregunta en Todoexpertos dentro del tema de microsoft excel. En el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas. Sal u dos - Dante Amor
Hola muchas gracias por tu apoyo, buscaba exactamente lo que propones como solución. Tengo un pequeño problema. Al momento de dar click al botón imprimir no hace nada - Juan Pablo Leal
Y cuál botón? el que está en el userform? pusiste todo el código dentro del userform? - Dante Amor
CColoque todo el código en userform. Regrese a la hoja de Excel, hice la macros. Y al darle click al botón se despliega el menú. Pero cuando le doy click en botón (imprimir) no hace nada. - Juan Pablo Leal
Envíame tu archivo con el formulario para revisarlo. Mi correo [email protected] En el asunto del correo escribe tu nombre de usuario “Juan Pablo Leal”, mientras, podrías crear una nueva pregunta, en el tema d microsoft excel, en el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas. Reviso el archivo y te pongo la solución en la pregunta creada. - Dante Amor
Hola Dan, yo sí logré que funcionara la macros, pero tengo otras preguntas. En mi libro hay hojas que debo imprimir forzosamente y otras que son opcionales, pero además las debo exportar como .pdf Cómo puedo hacer que las hojas que van de "cajón" no me aparezcan en la lista para seleccionar y que se exporten por default? - Elizabeth Ramirez
Con mucho gusto te ayudo con todas tus peticiones.Crea una nueva pregunta en Todoexpertos.com dentro del tema de microsoft excel. En el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas.Sal u dos - Dante Amor
Comentario borrado por el autor - Toti M. Gil
Para Dante Amor. Meto aquí el comentario. Al ejecutar Private Sub UserForm_Activate() da error y no se carga el formulario. He probado con Private Sub UserForm_initialize() y tampoco funciona. ¿Sabes a que se puede deber? - Toti M. Gil
Qué error te aparece y en cuál línea?Revisa que hayas copiado la macro completa, también debes tener los controles que se mencionan. - Dante Amor
Hola realice la macro pero no me imprime nada - Gloria Cardona
Crea una nueva pregunta para revisar tu caso. En el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas.Sal u dos - Dante Amor
Buena tarde, me podría apoyar, ya hice todo pero al dar click en imprimir no da nada@ - Windley Fuentes
Con mucho gusto te ayudo con todas tus peticiones.Crea una nueva pregunta en Todoexpertos.com dentro del tema de microsoft excel. En el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas.Sal u dos - Dante Amor
Listo Cuenta creada, y pregunta también - Windley Fuentes
Gracias por tu ayuda, cual seria el código que me permita ver lo que voy a imprimir algo como un preview - Luis Lázaro Apolaya
ActiveWindow.SelectedSheets.PrintPreviewNo olvide voto a la respuesta. - Dante Amor
Hola Dante, como modificar el código para que si seleccionas varias hojas a imprimir, las guarde todas en el mismo .pdf y no en .pdf independientes que es como trabaja actualmente? Gracias. - Paco Carmona
descarga esta versión, funciona para enviar a un pdf o a varios pdfs. https://www.dropbox.com/s/58dkte1leqrq2t4/Send%20multiple%20sheets%20to%20PDF-Print-File%20v5.xlsm?dl=0 - Dante Amor
Hola Dante, Excelente y gracias!.. y si quiero que me lo imprima en la misma carpeta, con el mismo nombre de la hoja, sin que me salga la ventana para seleccionar donde guardar, como pongo la ruta del archivo y el nombre ? gracias! - Pablo Diaz
Dante Amor hola date, gracias por el aporte... si quiero que se grabe con mismo nombre y en la misma ruta de archivo, sin que me salga la ventana para seleccionar donde guardar, como lo realizo? - Pablo Diaz
el dropbox no está disponible, lo puedes cargar de nuevo. Muchas gracias. - sergio rodriguez
Buenas tardes, ¿cuál sería el código para poder hacerlo en powerpoint? Gracias - sergio rodriguez
Pusiste una respuesta, lo que debes hacer es agregar un comentario después de mi respuesta, o bien, crear una nueva pregunta, ahí describes cuál es tu problema; en el desarrollo de la pregunta escribe "para Dante Amor". sal u dos - Dante Amor
Una consulta al imprimir sale correcto pero no sale en más hojas, hay algún procedimiento para verlo primero en preview las hojas seleccionadas. Saludos - Luis Lázaro Apolaya
Pusiste el comentario en la respuesta de otro usuario, si quieres una actualización a la macro crea una nueva pregunta, en el desarrollo de la pregunta escribe "para Dante Amor", ahí describe con detalle lo que necesitas. - Dante Amor