Veremos una sencilla forma de eliminar elementos dentro de un ListBox en un UserForm (formulario de usuario), siempre y cuando se hayan cargado empleando el método .AddItem !!...
Esto, por tanto, no será válido para datos cargados con la propiedad .RowSource.
Tenemos un formulario con un ListBox llamado 'LstPais'
Para cargar los datos desde nuestra Tabla de países en la hoja de cálculo, asociaremos al evento _Initialize con el método .AddItem.
Mientras que asociado al evento Doble Clic (_DblClick) conseguiremos que el elemento sobre el que realicemos dicha acción se elimine...
Así pues añadimos los siguiente códigos dentro de la ventana de código de nuestro UserForm en nuestro proyecto de VB:
Podemos ejecutar nuestro formulario y comprobar el correcto uso...
Esto, por tanto, no será válido para datos cargados con la propiedad .RowSource.
Tenemos un formulario con un ListBox llamado 'LstPais'
Para cargar los datos desde nuestra Tabla de países en la hoja de cálculo, asociaremos al evento _Initialize con el método .AddItem.
Mientras que asociado al evento Doble Clic (_DblClick) conseguiremos que el elemento sobre el que realicemos dicha acción se elimine...
Así pues añadimos los siguiente códigos dentro de la ventana de código de nuestro UserForm en nuestro proyecto de VB:
Private Sub UserForm_Initialize()
'recorremos cada celda del campo pais de nuestra Tabla
For Each pais In Range("TblPaises[paises]")
'lo incorporamos como elemento nuevo del ListBox
'empleando el método .AddItem
Me.LstPais.AddItem pais.Value
Next pais
End Sub
Private Sub LstPais_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'condicionamos al evento Doble Clic el borrado del elemento
'si hay algo seleccionado lo borramos
If Me.LstPais.ListIndex >= 0 Then
'con el método .RemoveItem eliminamos el elemento
Me.LstPais.RemoveItem (Me.LstPais.ListIndex)
End If
End Sub
Podemos ejecutar nuestro formulario y comprobar el correcto uso...
Related Articles
This post first appeared on EXCEL FORO: EJERCICIOS, EJEMPLOS, SOLUCIONES, DUDA, please read the originial post: here