Pasar datos de un listbox a otro listbox con funciones matemáticas

De nuevo ahonadando más mis conocimientos esta vez quiero preguntar si es posible pasar datos de un listbox a otro y que este los reciba con una función matemática es decir un resultado realizado previamente en la macro, lo intente tratando de hacerla de varias maneras esta fue la manera más limpia que logre pero no me registra los resultados en el lisbox1. Lo que requiero es que cuando captutre el dato del listbox2 el cual es cargado y llenado por dastos de la hoja2 al darle clic al dato del listbox2 este lo envíe al listbox1 pero haciendo la fórmula matemaica la fila del dato escogido multiplique columna E* F y divada la columna G y este resultado se cargue en el listbox1... Gracias

Private Sub CommandButton1_Click()
Dim E, G, F, resul As Double
On Error Resume Next
'If fila = Me.ListBox2.ListIndex Then
'Me.ListBox1.AddItem ListBox2.List(fila, 2)
'ListBox1.List(ListBox1.ListCount - 2, 2) = ListBox2.List(fila, 2)
If ListBox2.ListCount > 0 Then
Me.ListBox1.AddItem ListBox2.Text
   For i = 0 To ListBox2.ListCount - 1
      If ListBox2.Selected(i) = True Then
      End If
   Next i
End If
 E = Hoja2.Cells(5, 2).Value
 G = Hoja2.Cells(7, 2).Value
 F = Hoja2.Cells(6, 2).Value
 resul = E * G / F
 ListBox1.List(ListCount - 1, 2) = resul
End Sub

1 Respuesta

Respuesta
2

Debes anteponer el nombre del control ListBox1:

 ListBox1.List(ListBox1.ListCount - 1, 1) = Format(resul, "#,00")   'col 1
 ListBox1.List(ListBox1.ListCount - 1, 2) = Format(resul, "#.00") + 10  'col 2

Dejo como ejemplo las instrucciones para pasar resultados (con formato) a 2 columnas.

Si solo necesitás 1, omití la segunda.

Y si no necesitás formatos, omitilo y dejá solamente = resul

Muchas gracias por su atención y respuesta pero solo me sale una sola columna y no me caotura el resultado que seria la segunda coluimna muchas gracias lo clocó con + 10 nada y lo mismo si lo coloco y tampoco nada gracias!

Lo del +10 fue solo un ejemplo de cálculos, para mostrar diferentes resultados en las 2 col ;)

¿Cuántas columnas declaraste en tu ListBox1?

Comentame.

*Todo lo que necesitas saber sobre ListBox lo encontrarás en el cap 9 del manual Userforms, en sus 18 apartados.

Disculpándome por preguntar pero es que soy muy novato en busca de aprender y de acuerdo a mi proyecto el cual es un recetario de cocina pues veo que es el mejor para aprender por la cantidad de controles y funciones explicándome sobre el mismo, tengo una hoja2 de productos de la cabecera "A hasta I" donde se guarda la información de todos los productos y a su vez los cargo en un formulario que tiene 2 listbox y uno de estos inicializa con los datos cargados de la hoja2 columna " B" hasta allí excelente después selecciono un dato de este listbox y por medio de botón lo paso al otro listbox que esta vacío solo paso el dato seleccionado... PERO quiero capturar en ese listbox una vez cliquee el botón me realice una función matemática de la fila seleccionda y capturada el dato los cuales son las columnas E* F y divada la columna G y este resultado se cargue en el listbox. Los cuales selecciono un dato realice la función de las columnas selecciono otro dato y siga realizando la función y así sucesivamente ... para después guardarlos o registrarlos en otra hoja que en mi caso seria la hoja de estandarizacioin de mis recetas gracias totales... el código adjuntado es lo que tengo y sigo aplicando pero por mi inexperencia y autodidacta me puedo demorar muchos días e n realizar esa función

Te resumo los 2 pasos que debes realizar. Si aún así no lo logras deberás enviarme tu libro para realizarlo allí mismo.

Paso 1: asignarle la cantidad de columnas necesarias al ListBox1, en principio parece que solo necesitas 2: una para el texto traído del Listbox 2 y otra para el resultado. Entonces, selecciona el ListBox1 y desde la ventana de Propiedades, en ColumnsCount coloca 2 (ver imagen anterior).

Si tenés alguna instrucción que te establece de cuántas columnas será este control, entonces allí coloca 2.

Paso 2: A tu instrucción solo le falta que antepongas el nombre del control y la col es 1 (se cuenta a partir de 0 para el texto, 1 para el resultado)

resul = E * G / F
 ListBox1.List(ListBox1.ListCount - 1, 1) = resul  'AJUSTAR AQUÍ
End Sub

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas