Cita:
Iniciado por niconico Muchas gracias por la aclaración, una duda que tengo en esta línea del código:
If Range("A1") <> "" Then ActiveWindow.SelectedSheets.PrintOut Copies:=1
puedo indicar más celdas, pero si lo que quiero es la celda a1 de la hoja1, la a5 de la hoja 2 y la c5 de la hoja 3? se deberían incorporar en el condicional?
Muchas gracias
Sí, claro, tienes que hacer cambios, porque ese código anterior, solo mira el rango A1 de todas las hojas.
Lo que quieres hacer sería así:
Código:
Sub Imprimir_solo_si_hay_datos()
'Ocultamos el proceso, para que no se vea como salta de hoja en hoja
Application.ScreenUpdating = False
'Nos desplazamos hasta la primera hoja del libro (da igual el nombre que tenga la hoja, pues siempre será Hoja1)
Hoja1.Select
'Que recorra todo el libro en búsqueda de todas las hojas
For i = 1 To Sheets.Count
'Comprobamos que existan datos, para imprimir cada hoja
If i = 2 Then 'Indicamos que cuando llega a la hoja 2 del bucle, mire el rango A5
If Range("A5") <> "" Then ActiveWindow.SelectedSheets.PrintOut Copies:=1
ElseIf i = 3 Then 'Indicamos que cuando llega a la hoja 3 del bucle, mire el rango C5
If Range("C5") <> "" Then ActiveWindow.SelectedSheets.PrintOut Copies:=1
Else 'Si estamos en otra hoja distinta a la 2, y la 3, que compruebe la celda A1
If Range("A1") <> "" Then ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
'Si no estamos en la última hoja, que avance a la siguiente pestaña (u hoja)
If i < Sheets.Count Then ActiveSheet.Next.Select
Next
'Mostramos el proceso
Application.ScreenUpdating = True
End Sub
Salu2