Ayuda con listbox
Publicado por Juanito (30 intervenciones) el 31/05/2008 17:20:16
Hola:
Tengo una hoja de excel con un form. En el form tengo un boton y un listbox con opptionbutton. Tengo programado cada optionbutton de tal manera que al pulsarles, me carga una determinada columna con datos de la hoja excel. Para lo que sirve el form es para que al selecionar un elemento de la lista, lo copia en la celda activa y lo quita de la lista, ya que me interesa (por ser elemento ya usado).
El caso es que hasta aqui todo funciona bien, pero el problema es que por elemplo, cambio de optionbutton, pero cuando vuelvo al anterior porque me interesa (donde ya habian desaparecido los elementos utiliados), pues me vuelve a salir el listado completo que carga de la columna de excel.
La cuestion es que necesito que alguien me indique como modifico el codigo para que me guarde en memoria los elementos que ya han desaparecido del listbox y no vuelvan a aparecer al cambiar de optionbutton y regresar al anterior.
---------------------------------------------------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
'Al pulsar al boton, copia el elemento en cell y lo quita del listbox.
Activecell = listbox1.value
ListBox1.RemoveItem ListBox1.ListIndex
End Sub
Private Sub OptionButton1_Click()
' Carga los elementos de la Hoja2 - Columna A.
Dim totaldatos As Long, datos
Dim vuelta As Long, c As Byte
totaldatos = Application.WorksheetFunction.CountA(Worksheets("hoja2").Range("a:b"))
datos = Hoja2.Range("A1:A" & totaldatos).Value
ListBox1.ColumnCount = 1
ListBox1.ColumnWidths = "50;50;20;50"
ListBox1.List() = datos
End Sub
Private Sub OptionButton2_Click()
' Carga los elementos de la Hoja2 - Columna B.
Dim totaldatos As Long, datos
Dim vuelta As Long, c As Byte
totaldatos = Application.WorksheetFunction.CountA(Worksheets("hoja2").Range("a:b"))
datos = Hoja2.Range("B1:B" & totaldatos).Value
ListBox1.ColumnCount = 1
ListBox1.ColumnWidths = "50;50"
ListBox1.List() = datos
End Sub
---------------------------------------------------------------------------------------------------------------------------
Gracias.
Tengo una hoja de excel con un form. En el form tengo un boton y un listbox con opptionbutton. Tengo programado cada optionbutton de tal manera que al pulsarles, me carga una determinada columna con datos de la hoja excel. Para lo que sirve el form es para que al selecionar un elemento de la lista, lo copia en la celda activa y lo quita de la lista, ya que me interesa (por ser elemento ya usado).
El caso es que hasta aqui todo funciona bien, pero el problema es que por elemplo, cambio de optionbutton, pero cuando vuelvo al anterior porque me interesa (donde ya habian desaparecido los elementos utiliados), pues me vuelve a salir el listado completo que carga de la columna de excel.
La cuestion es que necesito que alguien me indique como modifico el codigo para que me guarde en memoria los elementos que ya han desaparecido del listbox y no vuelvan a aparecer al cambiar de optionbutton y regresar al anterior.
---------------------------------------------------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
'Al pulsar al boton, copia el elemento en cell y lo quita del listbox.
Activecell = listbox1.value
ListBox1.RemoveItem ListBox1.ListIndex
End Sub
Private Sub OptionButton1_Click()
' Carga los elementos de la Hoja2 - Columna A.
Dim totaldatos As Long, datos
Dim vuelta As Long, c As Byte
totaldatos = Application.WorksheetFunction.CountA(Worksheets("hoja2").Range("a:b"))
datos = Hoja2.Range("A1:A" & totaldatos).Value
ListBox1.ColumnCount = 1
ListBox1.ColumnWidths = "50;50;20;50"
ListBox1.List() = datos
End Sub
Private Sub OptionButton2_Click()
' Carga los elementos de la Hoja2 - Columna B.
Dim totaldatos As Long, datos
Dim vuelta As Long, c As Byte
totaldatos = Application.WorksheetFunction.CountA(Worksheets("hoja2").Range("a:b"))
datos = Hoja2.Range("B1:B" & totaldatos).Value
ListBox1.ColumnCount = 1
ListBox1.ColumnWidths = "50;50"
ListBox1.List() = datos
End Sub
---------------------------------------------------------------------------------------------------------------------------
Gracias.
Valora esta pregunta


0