Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

VBA: Eliminar celdas desde ListBox

Siguiendo con la serie de post sobre Listbox y cómo eliminar elementos, hoy veremos cómo eliminar celdas de la hoja de cálculo desde un ListBox.
Nuestros datos:



Disponemos de una Tabla en el rango A1:A7, tabla llamada 'TblPaises'.
Por otro lado, nuestro formulario contiene una etiqueta/label y un ListBox llamado: LstPais.


Con el evento _Initialize asociado al UserForm cargaremos el ListBox empleando la propiedad .RowSource.
A continuación vinculado al evento _DblClick del ListBox controlaremos la acción de eliminado de celdas en la hoja de cálculo.


Así pues añadimos las siguientes macros dentro de la ventana de código de nuestro UserForm en nuestro proyecto de VB:

Private Sub UserForm_Initialize()
'cargamos el listbox con los valores de la Tabla en la hoja de cálculo
Me.LstPais.RowSource = "TblPaises[paises]"
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub LstPais_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim sEncontrar As String, rngBusqueda As Range

'trabajamos sobre el elemento del listbox seleccionado
Select Case Me.LstPais.Value
'en caso haya alguno seleccionado
Case Is ""
'definimos el valor/pais a encontrar
sEncontrar = Me.LstPais.Value
'determinamos dónde buscar 8en qué rango)
With ActiveSheet.Range("TblPaises[paises]")
Set rngBusqueda = .Find(what:=sEncontrar)
'si se ha encontrado el valor/país
If Not rngBusqueda Is Nothing Then
'marcamos esa celda en la hoja de cálculo
'y eliminamos desplazando el resto hacia arriba
rngBusqueda.Delete shift:=xlUp
End If
End With
'para el resto de casos salimos del procedimiento
Case Else
Exit Sub
End Select

'volvemos a cargar el ListBox con el resultado de la hoja de cálculo
Me.LstPais.RowSource = "TblPaises[paises]"
End Sub


Al ejecutar nuestro formulario podemos comprobar cómo al hacer doble clic sobre los elementos del ListBox se eliminan los registros de la tabla 'TblPaises' en la hoja de cálculo, tal como esperábamos...


This post first appeared on EXCEL FORO: EJERCICIOS, EJEMPLOS, SOLUCIONES, DUDA, please read the originial post: here

Share the post

VBA: Eliminar celdas desde ListBox

×

Subscribe to Excel Foro: Ejercicios, Ejemplos, Soluciones, Duda

Get updates delivered right to your inbox!

Thank you for your subscription

×