¿Cómo mostrar los datos filtrados en un listbox?

Tengo un excel donde voy introduciendo datos, en concreto pedidos de papel.

Estos datos los introduzco mediante un formulario y se dipositan en la hoja 1 llamado datos. Me gustaría poder visualizar el historial de pedidos al introducir el nombre de quien genera el pedido.
Los datos se introducen en el siguiente orden y manera:

La columna B y DE identifica la empresa que solicita el envío, y las columnas H, I, J y QUE el tipo de papel que piden y para terminar la columna L la fecha en que se ha pedido.

Al pulsar el botón se abre el formulario para introducir los nuevos datos, selecciono la empresa que solicita el envío de papel y me gustaría que en list de la derecha se mostraran TODOS los envíos hechos a esa empresa con la fecha.

En el cuadro de la derecha debería mostrar solo los envíos hechos a CERVERA (cuyo numero único es el 77)

Tal y como muestro en la primera imagen los datos que debería aparecer serian los siguientes (marcados en amarillo)

El listbox debería tener la fecha(columna A o 1) y las cantitades de papel y el tipo (columna B o 2)

Muestro un ejemplo en la tabla de excel pero debería ir al listbox

La intención es saber que se le ha enviado y cuando se le ha enviado.
¿Cómo podría hacer para que al seleccionar la empresa en el formulario me saliera en el listbox los datos solo de esa empresa referente a los envíos y las cantidades?

Respuesta
1

en mi caso uso la intruccion for each 

y le digo que me carge solo eso datos 

uf = Range("a1000000").End(xlUp).Row
For Each celda In Sheets("SOE FE").Range("A2:A" & uf)
If celda.Offset(0, 7) = "TAN" And celda.Offset(0, 15) <> "LEA"  Then
ListBox1.AddItem Format(celda.Offset(0, 18), "dd-mmm-yy") 
ListBox1.List(i, 1) = celda.Offset(0, 22) 'col d 
ListBox1.List(i, 2) = celda.Offset(0, 24) 
ListBox1.List(i, 3) = celda.Offset(0, 2) & " " & celda.Offset(0, 3) & "-" & celda.Offset(0, 4) 'col A 
ListBox1.List(i, 4) = celda.Offset(0, 8) & " " & celda.Offset(0, 9) 'col  
ListBox1.List(i, 5) = celda.Offset(0, 5) 'col C 
ListBox1.List(i, 6) = celda. Offset(0, 19) 'col d ListBox1.List(i, 7) = celda. Offset(0, 20) 'col d

estos seria in ejemplo solo tiene adaptarlo a tu gusto

Sino sale a camino este mi correo [email protected] para ayudarte

¡Gracias! Aneudys intento entender el código pero no consigo adaptarlo.

'Busca la ultima fila recorriendo la columna A
uf = Range("a1000000").End(xlUp).Row
'Genera un bucle en la pagina (SOE FE) a partir del rango A2 hasta la ultima fila
For Each celda In Sheets("SOE FE").Range("A2:A" & uf)
'Busca coincidencias 7 y 15 columnas a la derecha si las cumple se añade al listbox
If celda.Offset(0, 7) = "TAN" And celda.Offset(0, 15) <> "LEA"  Then
ListBox1.AddItem Format(celda.Offset(0, 18), "dd-mmm-yy") 
ListBox1.List(i, 1) = celda.Offset(0, 22) 'col d 
ListBox1.List(i, 2) = celda.Offset(0, 24) 
ListBox1.List(i, 3) = celda.Offset(0, 2) & " " & celda.Offset(0, 3) & "-" & celda.Offset(0, 4) 'col A 
ListBox1.List(i, 4) = celda.Offset(0, 8) & " " & celda.Offset(0, 9) 'col  
ListBox1.List(i, 5) = celda.Offset(0, 5) 'col C 
ListBox1.List(i, 6) = celda. Offset(0, 19) 'col d ListBox1.List(i, 7) = celda. Offset(0, 20) 'col d

He puesto anotaciones de lo que he entendido del codigo.
Lo he intentado adaptar pero me da error o no funciona. El error que me da es que falta el Next
Te paso la adaptación que he hecho a ver en que he fallado

uf = Range("a1000000").End(xlUp).Row
'La hoja que estan los datos se llama (DADES) y el rango para buscar es el A
For Each celda In Sheets("Dades").Range("A3:A" & uf)
'El dato que debe buscar se encuentra en el formulario y es un label llamado num_equipament_final
If celda.Offset(0, 1) = num_equipament_final.caption Then
list_historial.AddItem Format(celda.Offset(0, 11), "dd-mmm-yy")
list_historial.List(i, 1) = celda.Offset(0, 7)
list_historial.List(i, 2) = celda.Offset(0, 8)
list_historial.List(i, 3) = celda.Offset(0, 9)
list_historial.List(i, 4) = celda.Offset(0, 10)
End If
Next
End Sub

Los datos que tengo que introducir estan en los siguientes numeros de columna.

Fecha: columna 11 (debería salir en la primera columna del listbox)

DINA 4 reciclado: columna 7 (debería salir en la segunda columna del listbox)

DINA 3 reciclado: columna 8 (debería salir en la terceracolumna del listbox)

DINA 4 blanco: columna 9 (debería salir en la cuarta columna del listbox)

DINA 3 blanco: columna 10 (debería salir en la quinta columna del listbox)
¿Qué es en lo que fallo?

uf = Range("a1000000").End(xlUp).Row
'La hoja que estan los datos se llama (DADES) y el rango para buscar es el A
For Each celda In Sheets("Dades").Range("A3:A" & uf)
'El dato que debe buscar se encuentra en el formulario y es un label llamado num_equipament_final
If celda.Offset(0, 1) = num_equipament_final.caption Then
list_historial.AddItem Format(celda.Offset(0, 11), "dd-mmm-yy")
list_historial.List(i, 1) = celda.Offset(0, 7)
list_historial.List(i, 2) = celda.Offset(0, 8)
list_historial.List(i, 3) = celda.Offset(0, 9)
list_historial.List(i, 4) = celda.Offset(0, 10)
End If
i = i + 1
Next
End Sub

disculpa no agregue mi ejemplo entero le faltaba esta parte para que agregue el nuevo registro 

i = i + 1 

tambien no se que format de fecha use pero en mi caso tenia que usar ese 

list_historial. AddItem Format(celda. Offset(0, 11), "dd-mmm-yy")

prueeba a ver sin el format de fecha que uso osea asi

list_historial. AddItem celda. Offset(0, 11)

cualquien duda me deja saber si no sale a camnio este es mi correo [email protected] para ayudarte

¡Gracias! ya he puesto el next pero no me funciona.
No me da ningún error ni nada tampoco. Lo he puesto en el evento change de un combobox, ¿seria correcto?
El código es este: (no se si lo he adaptado bien)

Private Sub num_equipament_Change()
uf = Range("a1000000").End(xlUp).Row
'La hoja que estan los datos se llama (DADES) y el rango para buscar es el A
For Each celda In Sheets("Dades").Range("A3:A" & uf)
'El dato que debe buscar se encuentra en el formulario y es un label llamado num_equipament_final
If celda.Offset(0, 1) = num_equipament_final.Caption Then
list_historial.AddItem Format(celda.Offset(0, 11), "dd-mmm-yy")
list_historial.List(i, 1) = celda.Offset(0, 7)
list_historial.List(i, 2) = celda.Offset(0, 8)
list_historial.List(i, 3) = celda.Offset(0, 9)
list_historial.List(i, 4) = celda.Offset(0, 10)
End If
i = i + 1
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas