martes, 23 de enero de 2018

VBA: Borrar elementos de un ListBox-.RemoveItem

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'

VBA: Borrar elementos de un ListBox



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...

VBA: Borrar elementos de un ListBox

2 comentarios:

  1. Buena Noche, estoy buscando una solución para poder eliminar datos de una tabla apartir de los datos seleccionados en un listbox, obviamente el listbox es multiselect y cargado con los datos contenidos en la tabla de igual manera busco eliminar "varios datos" elegidos en el listbox... alguien me ayuda??

    ResponderEliminar
    Respuestas
    1. Hola Luís,
      tendrás que recorrer el lisbox, e identificar los seleccionados... para según éstos eliminarlos de la tabla.
      No hay forma de borrado múltiple simultáneo

      Saludos

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.