Contenido ListBox a otro.

22/04/2009 - 00:05 por User | Informe spam
Hola a todos, tengo dos ListBox uno se encuentra con datos y otro vacío, la
idea es que al hacer clic en un elemento de la lista este aparezca en la
vacía y si hago clic en el elemento de la segunda lista éste debe
desaparecer.

Alguna sugerencia?

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
22/04/2009 - 04:03 | Informe spam
hola (como sea que te llames) !

... tengo dos ListBox uno se encuentra con datos y otro vacio
la idea es que al hacer clic en un elemento de la lista este aparezca en la vacia
y si hago clic en el elemento de la segunda lista este debe desaparecer. Alguna sugerencia?



(basicamente) debes usar el evento '_click' de la primera para enviar a la otra el elemento .listindex
(igualmente) en la segunda lista usar el evento '_click' para remover el elemento seleccionado (.listindex)
siempre y cuando, cualquiera de las listas contenga elementos (.listcount)

OJO: si los controles estan en un formulario, se haria de un modo... incrustados en una hoja, "con algo mas" (?)
si de la primera lista NO debieran pasar "repetidos", habria que buscar la condicionante para enviar a la segunda
si los listboxes tienen mas de una columna... (???)

comentas (si hubiera) algun detalle "en el tintero" ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 User
22/04/2009 - 15:36 | Informe spam
Gracias por responder Héctor, resulta que no me he dado mañas para hacerlo,
hasta el momento tengo lo siguiente:

Cuando activo la hoja se llena el primer listbox de la siguiente forma_:


Private Sub Worksheet_Activate()

If Me.ListBox1.ListCount > 0 Then
Exit Sub
Else
programas = Array("prog1", "prog2", "prog3")
For i = LBound(programas) To UBound(programas)
Me.ListBox1.AddItem (programas(i))
Next
End If
End Sub

programas es un array declarado como público

Ahora el código que me ha dado problemas:

Private Sub ListBox1_Click()
Me.ListBox2.AddItem (programas(Me.ListBox1.Index(Me.ListBox1.ListIndex)))
End Sub

Pero lo anterior no resulta, agradezco como siempre tu ayuda Héctor

"Héctor Miguel" escribió en el mensaje de
noticias news:%23y$
hola (como sea que te llames) !

... tengo dos ListBox uno se encuentra con datos y otro vacio
la idea es que al hacer clic en un elemento de la lista este aparezca en
la vacia
y si hago clic en el elemento de la segunda lista este debe desaparecer.
Alguna sugerencia?



(basicamente) debes usar el evento '_click' de la primera para enviar a la
otra el elemento .listindex
(igualmente) en la segunda lista usar el evento '_click' para remover el
elemento seleccionado (.listindex)
siempre y cuando, cualquiera de las listas contenga elementos (.listcount)

OJO: si los controles estan en un formulario, se haria de un modo...
incrustados en una hoja, "con algo mas" (?)
si de la primera lista NO debieran pasar "repetidos", habria que buscar la
condicionante para enviar a la segunda
si los listboxes tienen mas de una columna... (???)

comentas (si hubiera) algun detalle "en el tintero" ?
saludos,
hector.

Respuesta Responder a este mensaje
#3 Héctor Miguel
22/04/2009 - 22:43 | Informe spam
hola (...), ?????

... resulta que no me he dado mañas para hacerlo, hasta el momento tengo lo siguiente:
Cuando activo la hoja se llena el primer listbox de la siguiente forma_:
Private Sub Worksheet_Activate()
If Me.ListBox1.ListCount > 0 Then
Exit Sub
Else
programas = Array("prog1", "prog2", "prog3")
For i = LBound(programas) To UBound(programas)
Me.ListBox1.AddItem (programas(i))
Next
End If
End Sub
programas es un array declarado como publico

Ahora el codigo que me ha dado problemas:
Private Sub ListBox1_Click()
Me.ListBox2.AddItem (programas(Me.ListBox1.Index(Me.ListBox1.ListIndex)))
End Sub

Pero lo anterior no resulta ...



prueba cambiando esta parte:
Me.ListBox2.AddItem (programas(Me.ListBox1.Index(Me.ListBox1.ListIndex)))

por esta otra:
Me.ListBox2.AddItem Me.ListBox1.List(Me.ListBox1.ListIndex)

saludos,
hector.
Respuesta Responder a este mensaje
#4 User
22/04/2009 - 23:32 | Informe spam
Mil gracias Héctor Miguel funcionó de maravilla, tu como siempre no se te
escapa ni una. ;-)

Bye.

"Héctor Miguel" escribió en el mensaje de
noticias news:eWmQ%
hola (...), ?????

... resulta que no me he dado mañas para hacerlo, hasta el momento tengo
lo siguiente:
Cuando activo la hoja se llena el primer listbox de la siguiente forma_:
Private Sub Worksheet_Activate()
If Me.ListBox1.ListCount > 0 Then
Exit Sub
Else
programas = Array("prog1", "prog2", "prog3")
For i = LBound(programas) To UBound(programas)
Me.ListBox1.AddItem (programas(i))
Next
End If
End Sub
programas es un array declarado como publico

Ahora el codigo que me ha dado problemas:
Private Sub ListBox1_Click()
Me.ListBox2.AddItem (programas(Me.ListBox1.Index(Me.ListBox1.ListIndex)))
End Sub

Pero lo anterior no resulta ...



prueba cambiando esta parte:
Me.ListBox2.AddItem (programas(Me.ListBox1.Index(Me.ListBox1.ListIndex)))

por esta otra:
Me.ListBox2.AddItem Me.ListBox1.List(Me.ListBox1.ListIndex)

saludos,
hector.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida