Llenar listbox cada vez que se cumple la condición

Tengo un formulario que pide el numero de una maquina (las maquinas pueden ser varias pero se ponen en una celda de la columna "B" y se concatenan a partir de la columna "E"). Volviendo al formulario, el botón buscar busca la maquina y me va guardando el numero de factura al que corresponde y al finalizar me los imprime en un msgbox. Mi duda es como agregar un listbox que haga lo mismo, o sea, que cada vez que la maquina aparezca en una factura me guarde esa factura y al iterar vuelva a guardar otra factura pero en la siguiente fila.

Esta es la macro del formulario del botón buscar:

Private Sub buscar_m_Click()
Application.ScreenUpdating = False
Range("a5").Select
f = 5
a = 0
Dim facturas As String
Do While Cells(f, 1) <> ""
    If Val(numero_m) = Cells(f, 5) Or Val(numero_m) = Cells(f, 6) Or Val(numero_m) = Cells(f, 7) Or Val(numero_m) = Cells(f, 8) Or Val(numero_m) = Cells(f, 9) Or Val(numero_m) = Cells(f, 10) Then
        a = a + 1
        facturas = facturas & " , " & Cells(f, 1)
        GoTo salto
    Else
        a = a
    End If
salto:
Range("a3").Select
f = f + 1
Loop
      MsgBox "Maquina: " & numero_m & vbNewLine & " ha sido " & a & " veces facturada," & vbNewLine & "en las factura(s): " & facturas & "."
Application.ScreenUpdating = True
End Sub

1 Respuesta

Respuesta
2

¿Lo qué necesitas es un Listbox en este mismo UF, donde se vayan volcando las facturas encontradas?
Las consultas entonces son:
- En qué col de tu hoja se encuentran las facturas

- ¿Qué información debe mostrar el listbox? ¿Solo la factura o también el nro de máquina?

Quedo a la espera de todas las aclaraciones posibles para desarrollar el ejemplo.

Las consultas entonces son:
- En qué col de tu hoja se encuentran las facturas.

columna A

- ¿Qué información debe mostrar el listbox? ¿Solo la factura o también el nro de máquina?

la factura y el valor total que esta en la columna C

Muchas gracias de antemano Elsa!

Bien, entonces en lugar del mensaje se mostrará la lista encontrada en un listbox.

Al dibujar el listbox debes dejar su propiedad ColumnCount en 2.

Y las instrucciones son las que dejo dentro del bucle ... hay algunas a las que no les veo el sentido ... no entendi el uso de la variable 'a'.

Do While Cells(f, 1) <> ""
    If Val(numero_m) = Cells(f, 5) Or Val(numero_m) = Cells(f, 6) Or Val(numero_m) = Cells(f, 7) Or Val(numero_m) = Cells(f, 8) Or Val(numero_m) = Cells(f, 9) Or Val(numero_m) = Cells(f, 10) Then
        a = a + 1    '?????
        ListBox1.AddItem Cells(f, 1)
        ListBox1.List(ListBox1.ListCount - 1, 1) = Cells(f, 3)
        'facturas = facturas & " , " & Cells(f, 1)
        GoTo salto
    Else
        a = a    '??????
    End If
salto:
Range("a3").Select   '?????
f = f + 1
Loop

Sdos y no olvides valorar la respuesta (opción Excelente o buena).

¡Muchas Gracias! La variable a la tenia como contado al principio pero ya no me sirve así que lo eliminaré, y lo del range es para que terminara en esa celda

Bien, no olvides valorar entonces la respuesta ( excelente o buena).

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas