Ver Mensaje Individual
  #8 (permalink)  
Antiguo 06/03/2006, 06:14
Avatar de 3pies
3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 5 meses
Puntos: 144
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