Como sumar una columna de Precios de un ListBox?

Necesito sumar una columna de "Precios" y de "Cantidades", el tema es que esta información se encuentra mediante una consulta que realizo en un UserForm dentro de un ListBox.

1 respuesta

Respuesta
1

H  o  l a:

¿Todavía requieres apoyo con esta pregunta?

Qué columna se va a sumar en el textbox de "Saldo", ¿la columna F con los precios?

Y qué columna se va a sumar en el textbox de "Unidades", ¿la columna E con las cantidades? En la columna de cantidades tienes textos, ejemplos: "3 HS", "30 MIN", "480 KG"; estas cantidades no se pueden sumar.

E spero tus comentarios. Sal u dos

Hola Dante, si es exacto son esas columnas las que necesito sumar, las de cantidades las pase directamente a Números.

El tema es que no se como hacerlo... es decir desde el ListBox1 sumar la columna E (cantidades) Y F (precios).

Pero lo mejor es que en cantidades tengas puros números, es decir, antes de ejecutar el formulario ya debiste haber borrado las letras, tal vez tengas que hacerlo manualmente y celda por celda, hasta que en la columna tengas puros números. De esa forma tendrás tu base lista para trabajarla.

Voy a realizar la macro, suponiendo que la columna tiene puros números.

Te anexo la macro actualizada

Sub FiltrarVentas()
'Por.Dante Amor
    'limpia la informacion para efectuar filtro avanzado
    hf.Range("A:J").ClearContents
    'coloca los criterios para efectuar los filtros avanzado
    hv.Range("K2") = ">=" & Format(DTPicker1.Value, "yyyy-mm-dd")
    hv.Range("L2") = "<=" & Format(DTPicker2.Value, "yyyy-mm-dd")
    If Productos = "Seleccionar Producto" Then hv.Range("M2") = "" Else hv.Range("M2") = Productos.Value
    If Tipología = "Seleccionar Línea" Then hv.Range("N2") = "" Else hv.Range("N2") = Tipología.Value
    'efectua el filtro avanzado
    u = hv.Range("A" & Rows.Count).End(xlUp).Row
    hv.Range("A7:J" & u).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=hv.Range("K1:N2"), _
        copytorange:=hf.Range("A1"), unique:=False
    'ordena el filtro avanzado
    u = hf.Range("A" & Rows.Count).End(xlUp).Row
    If u = 1 Then Exit Sub
    With hf.Sort
        .SortFields.Clear: .SortFields.Add Key:=hf.Range("G2:G" & u)
        .SetRange hf.Range("A1:J" & u): .Header = xlYes: .MatchCase = False
        .Orientation = xlTopToBottom: .SortMethod = xlPinYin: .Apply
    End With
    'Actualiza el ancho de columnas del listbox y carga
    hf.Cells.EntireColumn.AutoFit
    cols = Array("A", "B", 0, "D", "E", "F", 0, "H", "I", "J")
    For i = LBound(cols) To UBound(cols)
        If cols(i) = 0 Then n = 0 Else n = Int(hf.Range(cols(i) & 1).Width + 5)
        ancho = ancho & n & ";"
    Next
    ListBox1.ColumnWidths = ancho
    ListBox1.RowSource = hf.Name & "!A2:J" & u
    TextBox1 = WorksheetFunction.Sum(hf.Columns("F"))
    TextBox2 = WorksheetFunction.Sum(hf.Columns("E"))
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas