Como pasar un dato de un Listbox1 a un Listbox2 (De uno en uno, sin borrar el anterior)

De antemano agradezco la ayuda que me puedan prestar en el siguiente caso planteado:

Tengo una base de datos en una hoja llamada "productos", la cual tiene columnas útiles desde "A" hasta "Z" y numero de fila desde "A9" hasta "A23" incluyendo el título (las mismas irán aumentando a medida de agregar nuevos productos).

Por otra parte tengo un Userform el cual tiene un combobox1 que clasifica los productos en tres categorías(TORTAS; BEBIDAS;CANAPES), según la columna "H" de la base de datos y en función del valor seleccionado en el combobox1, se agregan las columnas seleccionadas en un listbox1 de 4 columnas.

Luego selecciono un ítem del listbox1 y lo transfiero a una hoja llamada "TEM", en la cual copio toda la línea; y con un commandbutton "AGREGAR", paso la información deseada al listbox2.

Mi problema en el cual solicito su ayuda, es que no se mantener varios ítem del listbox1 (Estos deben ser seleccionados de uno en uno, ya que los mismos están asociados a una imagen )y solo me mantiene el ultimo valor escogido.

Anexo imágenes de la base de datos y del userform al seleccionar un ítem. (Me borra el anterior y solo aparece el ultimo elegido).

1 respuesta

Respuesta
1

A ver si entiendo quieres seleccionar varios items de 1 para pasarlo al 2

¿O es que el 2 solo te amite uno cuando agregas más?

¿Dónde se borra cuando lo agregas al listbox2 o en el listbox1?

Hola Aneudys

La idea es seleccionar varios item del listbox1, uno a la vez (no coloque multiselect; porque necesito mostrar (imagen) el producto a medida que se selecciona) y enviarlo al listbox2, para finalmente sacar un reporte de los materiales requeridos.

pero; El listbox2 solo me admite un elemento y es allí donde se borra (mas bien cambia a la ultima opción que seleccione).

En el boton agregar copia estos

sub agregar ( )

For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) = True Then
       ListBox2.AddItem ListBox1.List(i)
    End If
Next

ListBox1.RemoveItem m

end sub

listbox1 = a tu listbox donde eliges

listbox2 = donde se hiran agregando segun vallas selecionando

ListBox1. RemoveItem m = esta parte es opcional si quiere la borra o la dejas esta lo que hace es borrar el items selecionado en el listbox1 para mi resulta efetivo porque no tengo que elejirlo de nuevo

Perdona la tardenza me fui de rumba y fiesta jajjajaj

Saludos no olvides valorar si te silve para cerrar la pregunta

Hola; gracias por tu tiempo y responderme.

Pero; si agrego esto a la macro me va traer  los mismos datos del listbox1 al listbox2.

Y yo quiero pasar la linea completa de la base de datos asociada al valor buscando en el listbox1 a una hoja temporal (necesitare eliminar columnas no necesarias)  y luego el resultado que me aparezca en el listbox2 (son diferentes datos y tamaños diferentes). 

Yo lo hice con un filtro y un resize, pero no se hacer el ciclo para que pueda cargar varios item, porque solo me toma la ultima opcion que seleccione.

Private Sub CommandButton1_Click() 'agregar

Hoja3.[b9:z9].Copy Sheets("TEM").[A1] 'copio el encabezado de la hoja productos a la hoja tem
[b10:b100].Find(ListBox1).Activate 'Encuentra el dato seleccionado en el Listbox (columna B)

ActiveCell.Resize(1, 20).Copy Sheets("TEM").[A2] 'selecciona la fila y 20 columnas

Call L2 'llamo al listbox2

end sub

Podrías mandar el archivo y decir cuales columnas quiere el el listbox2 cuando le des agregar

Este es mi correo [email protected]

Listo! Ya envíe el archivo a tu correo.

Revisa a ver si es lo solicitado

Recuerda valor la pregunta para cerrarla

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas