Hola tengo una macro que imprime varias hojas de un libro Excel, me gustaría poder hacerla un poco mas sofisticada hay veces que alguna hoja no habría que imprimirla por no tener información como se podría hacer que al imprimir seleccionara las hojas a imprimir.
adjunto la macro que tengo actualmente que me imprime todo
Sub IMPRIMIRTODOS()
Sheets("RANGOS").Select
Application.GoTo Reference:="PORTADA"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("DEM").Select
Application.GoTo Reference:="HOJADEM"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("ALBA").Select
Application.GoTo Reference:="HOJAALBA"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("CAR").Select
Application.GoTo Reference:="HOJACAR"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("FONTA").Select
Application.GoTo Reference:="HOJAFONT"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("VEN").Select
Application.GoTo Reference:="HOJAVEN"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("AR").Select
Application.GoTo Reference:="HOJAAR"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("RES").Select
Application.GoTo Reference:="HOJARES"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("SEG").Select
Application.GoTo Reference:="HOJASEG"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("PCI").Select
Application.GoTo Reference:="HOJAPCI"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("RESUMEN").Select
Application.GoTo Reference:="HOJARESUMEN"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
End Sub
Muchas gracias
adjunto la macro que tengo actualmente que me imprime todo
Sub IMPRIMIRTODOS()
Sheets("RANGOS").Select
Application.GoTo Reference:="PORTADA"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("DEM").Select
Application.GoTo Reference:="HOJADEM"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("ALBA").Select
Application.GoTo Reference:="HOJAALBA"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("CAR").Select
Application.GoTo Reference:="HOJACAR"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("FONTA").Select
Application.GoTo Reference:="HOJAFONT"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("VEN").Select
Application.GoTo Reference:="HOJAVEN"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("AR").Select
Application.GoTo Reference:="HOJAAR"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("RES").Select
Application.GoTo Reference:="HOJARES"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("SEG").Select
Application.GoTo Reference:="HOJASEG"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("PCI").Select
Application.GoTo Reference:="HOJAPCI"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
Sheets("RESUMEN").Select
Application.GoTo Reference:="HOJARESUMEN"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Application.GoTo Reference:="R1C1"
End Sub
Muchas gracias
así imprimiendo una a una, pues tendrás que poner la instrucción qeu imprime dentro de un condicional que compruebe si quieres o no imprimir la hoja
If HayQueImprimirHoja then
ActiveWindow.SelectedSheets.PrintOut
end if
el problema está en saber qué quieres comprobar para saber si una hoja se tiene que imprimir o no
¿es sólo comprobar si hay datos?¿hay encabezados en la hoja sin datos o está completamente vacía?¿hay algo en la hoja que nos permita saber automáticamente si quieres o no imprimirla?
------
Ya sé Excel, pero necesito más.
La idea que tengo es que el usuario seleccione que hoja quiere imprimir y la seleccione y luego la imprima en pdf en una carpeta asignada en una celda y un nombre asignado en una celda me han pasado una hoja que hace el seleccionar las hojas a imprimir y ahora quiero poderlo imprimir en pdf en la ruta y nombre definido haber si me deja subir archivo