Macro para imprimir solo si el hay valor

Hola Buenas tengo esta macro echa en excel

' SELECCIONA LAS CELDAS ENTRE LA C3 Y LA C225 SELECCIONANDO EN BLOQUES CON LA y la copia ,
Range("C3:C51,C54:C225").Select
Selection.Copy

' SE PASA A LA PESTAÑA albaranprint
Sheets("albaranprint").Select

'SELECCIONA LA CELDA E18 Y HACE UN PEGADO ESPECIAL SOLO CON LOS VALORES COPIADOS
Range("E18").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

' oculta las filas con 0
For Each r In Range("E18:E300")
If r.Value = 0 Then
r.EntireRow.Hidden = True
Else
r.EntireRow.Hidden = False
End If
Next

' Imprime varias hojas (2)
Range("A1:H251").Select
ExecuteExcel4Macro "PRINT(1,,,2,,,,,,,,1,,,TRUE,,FALSE)"

' Muestras las filas con 0
Rows("3:300").Select
Selection.EntireRow.Hidden = False
Range("A1").Select

'vuelve a la pestaña albarán
Sheets("ALBARÁN").Select

Después repite la operación con otras columnas

Lo me gustaría es inserta una linea de código que en el caso de que los datos a la hora de imprimir sean 0 o nada esa hoja no se imprima y continué la macro

Muchas gracias

1 respuesta

Respuesta
2

Reemplaza esto:

' Imprime varias hojas (2)
Range("A1:H251").Select
ExecuteExcel4Macro "PRINT(1,,, 2,,,,,,,, 1,,, TRUE,, FALSE)"

Por esto

If Range("E" & Rows.Count).End(xlUp).Row > 17 Then
' Imprime varias hojas (2)
Range("A1:H251").Select
ExecuteExcel4Macro "PRINT(1,,,2,,,,,,,,1,,,TRUE,,FALSE)"
End If

Hola Muchas gracias por la ayuda pero como soy nulo en esto

tendría que quedar asi el código

If Range("E" & Rows.Count).End(xlUp).Row > 17 Then
Range("A1:H251").Select
ExecuteExcel4Macro "PRINT(1,,,2,,,,,,,,1,,,TRUE,,FALSE)"
End If

tengo que sustituir Esto ("E" & Rows.Count) por esto ("A1:H251")

Muchas gracias y disculpa mi ignorancia y las molestias

No. Quedaría así

' Selecciona las celdas entre la c3 y la c225 seleccionando en bloques con la y la copia,
Range("C3:C51,C54:C225").Select
Selection.Copy
' SE PASA A LA PESTAÑA albaranprint
Sheets("albaranprint").Select
'SELECCIONA LA CELDA E18 Y HACE UN PEGADO ESPECIAL SOLO CON LOS VALORES COPIADOS
Range("E18").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' oculta las filas con 0
For Each r In Range("E18:E300")
If r.Value = 0 Then
r.EntireRow.Hidden = True
Else
r.EntireRow.Hidden = False
End If
Next

If Range("E" & Rows.Count).End(xlUp).Row > 17 Then
' Imprime varias hojas (2)
Range("A1:H251").Select
ExecuteExcel4Macro "PRINT(1,,,2,,,,,,,,1,,,TRUE,,FALSE)"

end if
' Muestras las filas con 0
Rows("3:300").Select
Selection.EntireRow.Hidden = False
Range("A1").Select
'vuelve a la pestaña albarán
Sheets("ALBARÁN").Select

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas