Imprimir datos de un formulario textbox, labels y listbox

Quisiera ver como puedo imprimir los datos que contiene un formulario, pienso en crear una hoja llamada impresión y de ahí ir colocando lo que hay en los LABELS y los textbox en la celdas correspondientes pero mi problema esta en que no se manejar muy bien el listbox. List

Ya que tengo 4 columnas habilitadas pero no tiene limite para poner los datos de arriba hacia abajo

¿Ahí es la cuestión como lo debo manejar?

Porque la impresión saldrá en una impresora térmica esas que usan el papel de rollito SON PAPEL LARGO PERO NO MUY ANCHO.

Entonces pongo un ejemplo:

En este caso tengo los datos de un CLIENTE, cantidad y cantidad en letra

Y los productos 4 COLUMNAS

Supongamos que le doy imprimir como le haria para pasar el listbox a la impresión respetando únicamente los 4 filas con datos que contiene el listbox junto con los demás datos (suponiendo que hay un limite de 15 productos restan 11 filas pero están deben ocultarse osea no salir en blanco ala hora de la impresión)

Ahora en este caso los productos van en aumento

Como le hago para ajustar ahora el área de impresión y se se agrande el espacio para productos para su impresión correcta

Aquí dejo el codigo que uso para crear base de datos modificado por DAN

Private Sub CommandButton4_Click()
Set a = Sheets("history")
fila = a.Range("A" & Rows.Count).End(xlUp).Row + 1
For i = 0 To ListBox1.ListCount - 1
 a.Cells(fila, 4).Value = ListBox1.List(i, 0) 'PRODUCTO
 a.Cells(fila, 5).Value = ListBox1.List(i, 1) ' CANTIDAD
 a.Cells(fila, 6).Value = ListBox1.List(i, 2) ' PRECIO
 a.Cells(fila, 7).Value = ListBox1.List(i, 3) ' IMPORTE
 a.Cells(fila, 1).Value = FormPedido.Label2.Caption 'cliente
 a.Cells(fila, 2).Value = FormPedido.Label20.Caption 'fecha
 a.Cells(fila, 3).Value = FormPedido.Label18.Caption 'folio
 fila = fila + 1
Next
FormPedido.Label18 = "S-" & Format(Val(Right([Label18], 3)) + 1, "000")
Unload Me
End Sub

espero me puedan ayudar en una idea ya que lo que se me ocurre es pasar los label o textbox a celda excel (listbox.list no se pasar a celdas) para así imprimir y tambien  no se como hacer la impresión dinámica dependiendo de los productos.

1 Respuesta

Respuesta
1

No puedes imprimir directamente del listbox, tienes que pasar los datos a una hoja.

Primero limpia la hoja y después pasa los datos del listbox a la hoja. Ya con los datos en la hoja, envías a imprimir la hoja. La hoja es la que debes configurar para imprimirse en tu impresora.

Para imprimir una hoja:

Sheets("hoja"). Printout

y para esto?

Supongamos que le doy imprimir como le haria para pasar el listbox a la impresión respetando únicamente los 4 filas con datos que contiene el listbox junto con los demás datos (suponiendo que hay un limite de 15 productos restan 11 filas pero están deben ocultarse osea no salir en blanco ala hora de la impresión)

Como le hago para ajustar ahora el área de impresión y se se agrande el espacio para productos para su impresión correcta

No estoy entendiendo bien.

Para establecer lo que quieres imprimir:

ActiveSheet.PageSetup.PrintArea = "$A$1:$D$14"

Lo que pasa es que ok el área de impresión sera esta:

ActiveSheet.PageSetup.PrintArea = "$A$1:$D$14"

mi problematica es:

ademas de CLIENTE, DOMICILIO etc que se imprimiran tambien se imprimira asi

Producto      Cantidad           P/U     importe

Supongamos que solo agarro 1 producto pero tengo 15 filas disponibles para los productos

En la impresión solo debe aparecerme 1 fila de producto que es la que tiene datos no es necesario que aparezcan las 14 filas en blanco, a eso me refiero con la impresión dinámica, ya que solo cuando hay dato visible lo imprima, algo así como filtra los espacios en blanco para impresión

Puede ser con algo así:

u = range("A" & rows.count).end(xlup).row
ActiveSheet.PageSetup.PrintArea = "$A$1:$D$" & u

lo probe y no me funciona, para la prueba puse datos en la celda A1, A2, A3, A7, A10,12

segun debe marcar el area de impresion ademas que 

solo sebe imprimir ASI

A1, A2, A3, A7, A10,A12

y no asi

A1, A2, A3,A4(BLANCO) ,A5 (BLANCO),A6(BLANCO),A7,A8(BLANCO),A9(BLANCO) ,A10,A11(BLANCO),A12

Esa es la parte que no entiendo, mejor envíame tu archivo y me explicas con ejemplos en las hojas cómo quieres la impresión.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas