Curso Excel VBA y Macros – Cap. 56 – Formularios – PARTE 2 Control ListBox ó Cuadro de lista

<<CURSO COMPLETO EN YOUTUBE>>

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:

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

<<CURSO COMPLETO EN YOUTUBE>>

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.

You may also like...