Ayuda con find y mostrar resultados en listbox

Es un placer saludarles y plantearles lo siguiente: se tienen 2 columnas, la "A" es proveedores y la "B" numero de pedido, tengo un formulario con un listbox que al abrirlo pide el nombre del proveedor. Lo que yo quiero es que en el listbox unicamente muestre todos los números de pedido relacionados con ese proveedor, pero hasta el momento solo me arroja el nombre del proveedor repetido tantas veces como este en la columna "A". El código lo obtuve de aquí y lo he ido modificando según lo que quiero pero aun no logro que muestre los números de pedido que están en la columna "B", ¿podrían ayudarme?, de antemano gracias.
El código es el siguiente
Private Sub UserForm_Initialize()
With Worksheets("hoja1").Range("A:A")
Set midato = .Find(InputBox("Introduce numero de contrato", "CONSULTA"), _
After:=.Cells(1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext)
If Not (midato) Is Nothing Then
ubica = midato.Address(False, False)
Do
ListBox1.AddItem midato
i = ListBox1.ListCount - 1
ListBox1.List(i, 1) = midato.Offset(0, 1).Value
ListBox1.List(i, 2) = midato.Offset(0, 2).Value
ListBox1.List(0, 3) = midato.Offset(0, 3).Value
Set midato = Worksheets("hoja1").Range("a:i").FindNext(midato)
Loop While Not midato Is Nothing And midato.Address(False, False) <> ubica
End If
End With
Set midato = Nothing
End Sub

1 respuesta

Respuesta
1
Lo he probado y funciona perfectamente. Tan sólo una cosa: ¿Te has acordado de modificar el "columncount" de las propiedades del listbox y dajarlo en 2?. Creo que ahí tienes el problema.
Por cierto acuérdate de limpiar el listbox al empezar la rutina.
Hola canas y gracias por responder. Bien, ya cambie el columncount a 2 y ahora ya muestra la info de ambas columnas, pero como hago para que al buscar el nombre del proveedor ("A") solo me muestre en el listbox lo de la columna "B", es decir, en este listbox no quiero que salga el nombre del proveedor. Gracias por checarlo, espero tu respuesta.
Entonces lo que quieres es más sencillo. Te adjunto un código nuevo (creo que más sencillo) y ya no te hace falta poner columncount a 2 (te vale con 1):
Private Sub UserForm_Initialize()
ListBox1.Clear
With Worksheets("hoja1").Range("A:A")
    Set midato = .Find(InputBox("Introduce numero de contrato", "CONSULTA"))
    i = 0
    Do
        i = i + 1
        If Cells(i, 1).Value = "" Then Exit Do
        If Cells(i, 1).Value = midato Then
            ListBox1.AddItem Cells(i, 2).Value
        End If
    Loop
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas