¿Puedo condicionar la impresión de filas en excel al valor de un campo?

Buenos días,

en mi trabajo recibo pedidos de material con varias hojas llenas de artículos con descripción, valor... Necesito imprimir tan sólo las filas que el valor unidades sea mayor que "0"

y no encuentro esta condición en ayuda... Me pueden ayudar ?

Gracias

Jaco

1 respuesta

Respuesta
1

Te mando esta solución, sigue mis pasos:

Crea una hoja nueva llamada "impresora"

Ahora vuelve a la hoja donde están tus datos y posiciónate en la primera celda de la columna de las unidades y ejecuta esta macro:

Esta macro te copiará a la hoja IMPRESORA todas las líneas cuyas unidades sean superiores a cero y después te la imprime. Si quieres que no la imprima automáticamente solo tienes que borrar la linea donde dice: "activesheet.printout copies:=1"

<span class="pun"></span><span class="typ">Sub</span> impresion()
Sheets("impresora").UsedRange.ClearContents
fila = Sheets("impresora").Range("a65000").End(xlUp).Row + 1
Cells(65000, ActiveCell.Column).End(xlUp).Offset(1, 0).Value = "final"
Do While ActiveCell.Value <> "final"
If ActiveCell.Value > 0 Then
ActiveCell.EntireRow.Copy Destination:=Sheets("impresora").Cells(fila, 1)
fila = fila + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.ClearContents
Sheets("impresora").Select
ActiveSheet.PrintOut copies:=1
End Sub

Disculpa que no haya podido ejecutar antes tu ayuda... y muchas gracias

me dice "ERROR DE COMPILACIÓN"

he creado un libro en blanco llamado impresora, tal y como decías,

he creado la macro copiando y pegando la tuya...

la he llamado "pedidos"

he puesto el cursor en la primera celda positiva y he ejecutado la macro...

y sale este dichoso mensaje...

Qué hago?

Gracias

<span class="pun"></span><span class="typ">Sub</span> impresión()

Esta es la línea que me sale en rojo....

Simplemente ha sido un error de la web en el copiado de mi código. Te lo vuelvo a pegar de forma correcta:

Crea una hoja nueva llamada "impresora"
Ahora vuelve a la hoja donde están tus datos y posiciónate en la primera celda de la columna de las unidades y ejecuta esta macro:
Esta macro te copiará a la hoja IMPRESORA todas las líneas cuyas unidades sean superiores a cero y después te la imprime. Si quieres que no la imprima automáticamente solo tienes que borrar la linea donde dice: "activesheet.printout copies:=1"

sub imprimir()
Sheets("impresora").UsedRange.ClearContents
fila = Sheets("impresora").Range("a65000").End(xlUp).Row + 1
Cells(65000, ActiveCell.Column).End(xlUp).Offset(1, 0).Value = "final"
Do While ActiveCell.Value <> "final"
If ActiveCell.Value > 0 Then
ActiveCell.EntireRow.Copy Destination:=Sheets("impresora").Cells(fila, 1)
fila = fila + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.ClearContents
Sheets("impresora").Select
ActiveSheet.PrintOut copies:=1
End Sub

Sheets("impresora").UsedRange.ClearContents

No se puede usar código en modo interrupción (sale esta ventana y la línea de arriba en amarillo...

Te ruego me disculpes por si soy yo el torpe....

Gracias

Eso sucede porque has ejecutado la macro previamente y estando en ejecución pretendes volver a ejecutarla. Entra en el módulo de visual basic pulsandl ALT F11 y pulsa en el botón de parar macro que está en el menú de la parte de arriba, el botón es un cuadrado igual que el botón de parar un dvd, cd...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas