Curso Excel VBA y Macros – Cap. 56 – Formularios – PARTE 2 Control ListBox ó Cuadro de lista
Seguimos con todo con el curso de Macros desde cero y Formularios. En este tutorial seguiremos viendo el Control ListBox o Cuadro de lista. En esta ocasión veremos dos maneras de identificar los elementos seleccionados, tanto individuales como más de uno, usando la propiedad MultiSelect.
Con respecto a este Control ListBox veremos los siguientes tema:
-
Identificar el elemento seleccionado en un ListBox (lista sencilla y selección múltiple). ✔
-
Pasar valores de un ListBox a otro ListBox.
-
Filtrar valores de una tabla y mostrarlos en un ListBox.
-
Eliminar filas de una tabla con datos mostrados en un ListBox.
Ver video Capítulo 56 Excel VBA & Macros
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Detectar y mostrar el elemento elegido en un ListBox
En este ejemplo mostraremos en el Cuadro de lista los nombres de las hojas en el archivo activo. A dar clic sobre un elemento y luego mostrar el botón Mostrar nombre, se mostrará un MsgBox con el nombre del elemento elegido para luego activar la hoja que corresponde al nombre.
También lograremos mostrar el elemento elegido al dar doble click sobre él, usando el evento DblClick.
Figura 1. Mostrar elemento elegido en un ListBox dentro de un UserForm usando VBA.
Option Explicit 'EXCELeINFO 'MVP Sergio Alejandro Campos 'http://www.exceleinfo.com 'https://www.youtube.com/user/sergioacamposh 'http://blogs.itpro.es/exceleinfo 'Rellenar ListBox Private Sub CommandButton1_Click() Dim Hoja As Object Me.ListBox1.Clear For Each Hoja In ActiveWorkbook.Sheets Me.ListBox1.AddItem Hoja.Name Next Hoja End Sub 'Mostrar el elemento elegido Private Sub CommandButton2_Click() Call MostrarValorElegido End Sub 'Mostrar el elemento elegido al dar doble clic Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Call MostrarValorElegido End Sub 'Macro para mostrar el elemento elegido Sub MostrarValorElegido() Dim Cuenta As Integer Dim Numero As Integer Dim i As Integer Dim j As Integer Cuenta = Me.ListBox1.ListCount For i = 0 To Cuenta - 1 If Me.ListBox1.Selected(i) = True Then MsgBox Me.ListBox1.List(i), vbInformation, "EXCELeINFO" Sheets(Me.ListBox1.List(i)).Activate End If Next i End Sub
Mostrar múltiples elementos elegidos en un Cuadro de lista
Ahora te mostraré cómo trabajar con varios elementos elegidos en un ListBox. El iniciar el Formulario usando el evento Initialize haremos uso de las propiedades ListStyle y MultiSelect para indicarle al Control que deseamos que la lista sea de opción múltiple. Al elegir uno o varios elemento mostraremos el valor.
Figura 2. ListBox con selección múltiple en Formulario de Excel VBA.
Option Explicit Private Sub CommandButton1_Click() Dim Hoja As Object Me.ListBox1.Clear For Each Hoja In ActiveWorkbook.Sheets Me.ListBox1.AddItem Hoja.Name Next Hoja End Sub Private Sub CommandButton2_Click() Dim Cuenta As Integer Dim Numero As Integer Dim i As Integer Dim j As Integer Cuenta = Me.ListBox1.ListCount For i = 0 To Cuenta - 1 If Me.ListBox1.Selected(i) = True Then Numero = Numero + 1 End If Next i If Numero <> 0 Then For j = 0 To Cuenta - 1 If Me.ListBox1.Selected(j) Then MsgBox Me.ListBox1.List(j) Else ' End If Next j End If End Sub Private Sub UserForm_Initialize() Me.ListBox1.ListStyle = fmListStyleOption Me.ListBox1.MultiSelect = fmMultiSelectMulti End Sub
Descargar el archivo de ejemplo
056 – Forrmularios Control ListBox Cuadro de lista 2 – EXCELeINFO.zip
Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.