Jump to content
Sign in to follow this  
JSDJSD

Sumar diferentes criterios dentro de un listbox

Recommended Posts

Sería posible dentro del listbox incluir una línea por cada empresa que aparezca en la que se refleje la suma total de cada una de ellas ? En el caso de que filtremos el nombre de jose no muestre el listbox lo siguiente:                                                                                                                                              

    COD.CLIENTE CLIENTE    TOTAL    EMPRESA     Nº FACTURA                                                                                                                                              

          2                    Jose         26,62 €         A                P1/000051
          2                    Jose         12,00 €         Z                  1/003596
          2                    Jose       100,00 €         X                  1/000146
          2                    Jose         20,84 €         X                  1/000490                                                                                                                                .                                                                                                                                            

   Total A.................... 26.62 €                                                                                                                                                                                                                                                                                                 Total Z.................... 12.00 €                                                                                                                                                                                                                                                                                                 Total X................... 120.84 €

Prueba1.xlsb

Share this post


Link to post
Share on other sites

Hola, si esos mismos nombres/parámetros están en la hoja y no se entrecruzan/repiten con otros sugiero usar "Sumar.Si" o "WorkSheetFunction.SumIf" o similares, para no estar haciendo bucles cuya programación te resultará más tediosa (pero no imposible, claro). Es mi sugerencia.

Abraham Valencia

Share this post


Link to post
Share on other sites

Lo sé avalencia, pero mi propósito es aprender cómo hacerlo en el mismo listbox  y así ir adquiriendo conocimientos para poder aplicarlos en próximos proyectos, gracias por tu respuesta.

Share this post


Link to post
Share on other sites

Saludos amigos, @JSDJSD, coloca esto en tu formulario

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    Dim mDatos(2, 50) As Variant
    Dim j As Integer
    Dim n As Integer
    
    For n = 0 To Me.ListBox1.ListCount - 1
        For j = 0 To UBound(mDatos, 2)
            If Me.ListBox1.List(n, 3) = mDatos(0, j) Then
                mDatos(1, j) = CDbl(Replace(Me.ListBox1.List(n, 2), " €", "")) + CDbl(Replace(mDatos(1, j), " €", ""))
                Exit For
            Else
                If mDatos(0, j) = "" Then
                    mDatos(0, j) = Me.ListBox1.List(n, 3)
                    mDatos(1, j) = Me.ListBox1.List(n, 2)
                    Exit For
                End If
            End If
        Next
    Next
    Me.ListBox1.AddItem ""
    Me.ListBox1.AddItem ""
    For j = 0 To UBound(mDatos, 2)
        If mDatos(0, j) = "" Then
            Exit For
        End If
        Me.ListBox1.AddItem "Total " & mDatos(0, j)
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = ".........."
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Format(mDatos(1, j), "#,##0.00 €")
    Next
End Sub

ya tendras lo que estas buscando, tal vez NO es la mejor forma, seria mas comodo un sumar.si como dice el amigo @avalencia, pero bueno, es lo que tu buscas

 

suerte

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.

Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png