Imprimir todos los libros excel que estén abiertos con VBA

Que ahora tengo, ¿lo qué sucede es que varias veces tengo mucho archivos excel abiertos y me gustaría mandarlos a imprimir todos de una vez y los cierre guardando lo mismo ocurre con los pdf que aveces los tengo abiertos alguna ayuda para crear 2 procedimientos que realicen esto uno para imprimir todos excel y otrp pdf se podrá hacer? ¿.

1 respuesta

Respuesta
2

[Hola

Lo de Excel no es tan complicado, pero en realidad depende de cuántas hojas tiene cada libro, qué hojas quieres imprimir (¿o todas?), ¿Todas las páginas de cada hoja?, etc. Por supuesto que cada una de esas cosas va complicando lo que necesitas. Igual, como para que te des idea, una forma de recorrer todos los libros abiertos:

Dim MiLibro As Workbook
For Each MiLibro In Application.Workbooks
    MsgBox MiLibro.Name
Next nLibros

Sobre los pdf, no olvidar que Acrobat Reader (o el programa que uses para leer los pdf), es una aplicación distinta al Excel por lo que controlarla no es tan simple, sea cual sea el caso siempre la dificultad de hacer esas cosas es de un nivel de programación más que inicial. Igual, como para que te des idea, las alternativas son:

- Usa SendKeys y enviar pulsaciones para mandar a imprimir los pdf. ¿Desventajas? Sendkeys es inestable, además, no tiene forma de saber cuántos archivos pdf están abiertos y tendrías que modificar la macro cada vez que la usas para enviar la cantidad de impresiones correspondientes.

- Usar la función ShellExecute de la API de Windows y mandar a imprimir los archivos necesarios pdf. ¿Desventajas? Tampoco puedes saber la cantidad de pdf abiertos y tendrías que ingresar las rutas de cada archivo abierto cada vez.

- Usar el objeto Acrobe, lo cual no es fácil y requiere bastante programación, pero con la ventaja de que controlas directamente cada archivo pdf abierto, no importando si es uno cien. Pero, insisto, programarlo no es fácil.

Comentas

Abraham Valencia

Vi un poco tedioso lo del pdf ese tema quedari cerrado, pero en tanto al excel si desearía imprimir todo el libro claro menos las hojas ocultas, alguna ayuda para que los mande a imprimir y los cierre luego de eso guardando los cambios, y no se si podría abrir un inputbox donde me escriba 1 para imprimir una página por hoja o 2 para imprimir ambas caras en una hoja.

Cuando uno manda a imprimir un libro completo, jamás se imprimen las hojas ocultas, por protocolo de Excel, para imprimirse una hoja tiene que estar visible.

En el pequeño código que te envié, la idea era que se entienda como "controlar" cada libro abierto, por ende si en el For, en lugar de mostrar nombre (name) mandas a imprimir, pues todo bien:

MiLibro.PrintOut Copies:=1, Collate:=True

Para cerrar y/o guardar, igual siempre usando "MiLibro", ya sea con Close o Save, o lo que necesites.

Sobre un InputBox y las páginas, se puede estimado, pero eso es algo que queda de tarea para ti, ya que involucraría un tiempo de desarrollo que no necesariamente tenemos los que ayudamos en los foros, recuerda que esto es algo ad honorem.

Saludos desde Lima]

Abraham Valencia

Aya si muchas gracias acabo el código y espero contar su apoyo si causa errores que no logro identificar muchas gracias por la ayuda

Listo, estaré atento.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas