[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