ListBox total de items selecionados en una celda

Hola soy Gabriel tengo un ListBox con dos columnas ej. Silla 20, sillón 40, mesa 30, etc (14 Items) y necesito dejar la suma total de los ítemes seleccionados en una celda, yo he realizado todos los ejemplos de Google y de esta página y no me funciona... Aparte de lo que va en el código debo realizar alguna configuración especial en las propiedades, yo he dejado el column count en 2 y el Bound column en 2... Por favor podrían ayudarme con el código por favor...
{"lat":-33.7974087675725,"lng":-70.576171875}

1 Respuesta

Respuesta
1
Copia este código en tu UserForm. Asegurate de borrar algún código de LisBox1_Change() que puedas tener.
Añade un TextBox1 a tu UserForm. Allí se almacenará el total.
Cambia la referencia Range("A1") por la celda donde empiezan las cantidades. Si por ejemplo, las cantidades de tu Base empiezan en E2, pues cambia la referencia a Range("E2")
En las propiedades de tu ListBox1, aplica :
  * BoundColumn=2
  * ColumnCount =2
  * MultiSelect=1-fmMultiSelectMulti
Private Sub ListBox1_Change()
Total = 0
For lItem = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(lItem) = True Then
        Total = Total + Range("A1").Offset(lItem, 1)
    End If
Next
TextBox1 = Total
End Sub
Hola Experto Hugo, mire hice casi todo y no me funcionó, lo único que no hice, fue ingresar un Userform, ya que estoy trabajando en una hoja excel, ahora si para que funcione debe ser un Userform, lo haré pero, ¿cómo relaciono mi columna de valores con el UserForm? ¿Es en el DataSource?. Lo otro al insertar el textbox, como queda el código... le agradeceré nuevamente su ayuda, desde ya muchas gracias... ya que esto habré para mi una nueva ventana ya que es primera vez que estoy incursionando en esto... y también le agradezcola rapidez con que me respondió... Gabriel
Ok. Asumí que estabas trabajando en un UserForm.
Si estas trabajando con un ListBox en la misma Hoja de Excel, entonces procede así :
En propiedades del ListBox :
  * BoundColumn=2
  * ColumnCount =2
  * ListFillRange= el rango de tu base
  * MultiSelect=1-fmMultiSelectMulti
Ahora, en su código, coloca esto :
Private Sub ListBox1_Change()    '  en este caso es Change()  no Click()
Total = 0
For lItem = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(lItem) = True Then
        Total = Total + Range("A1").Offset(lItem, 1)
    End If
Next
Range("D1") = Total
End Sub
El total se colocará en D1. Puedes cambiar esta referencia a otra dirección.
Recuerda que debes cambiar Range("A1") por la celda donde empieza tu base.
Hola experto Hugo, estoy muy contento, llevaba como tres semanas todas las noches en ensayo y error, obviamente copiando todos lo que mostraban en la red y nada y ahora con dos preguntas a Uds. estoy listo, inicialmente parecía fácil, pero definitivamente yo nunca hubiera pillado la respuesta; ahora puedo continuar con mi pequeño proyecto, después de harto tiempo entrampado, así que una vez más le agradezco su apoyo y disposición y también aprovecho de dar las gracias, por que exista gente como Uds. en la red, con tal disposición de ayudar.
Un abrazo a la distancia y muchas gracias... Gabriel González (Santiago de Chile)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas