Vba excel Imprimir según valor celda
Tengo en la columna a de mi libro una serie de nombres que hace referencia a hojas de un libro no abierto. En la columna B tengo una fórmula de manera que si es 1 el valor de la columna a quiero generar una macro que imprima esa página concreta del libro cerrado (llamado por ejemplo cerrado).
He usado la siguiente instrucción:
Sub PrintPages()
If Rangel ("b1").value > 0 Then
workbooks("cerrado").open
Sheets("Pagina1").Select
Selection.PrintOut
workbooks("cerrado").close
End If
'Etc para todas páginas
End Sub
Se podría optimizar la instrucción de forma que se cargue más rápido (teniendo en cuenta que en el libro cerrado hay imágenes por cada hoja)y que imprima las páginas cuyo valor en b en el libro original sea 1(ya que me salían hojas en blanco porque supongo que imprime antes de que se habran las imágenes del libro cerrado)