Mostrar el valor seleccionado de un ListBox en Excel vba

Le he desarrollado un pequeño ejemplo donde vemos la manera de obtener el valor de un Item seleccionado de un ListBox. Recordemos que un ListBox es un control ActiveX el cual nos permitirá tener una lista de valores, la cual podemos alimentarla a nuestro gusto.

► Si deseas conocer más ejemplos con el control ListBox da clic aquí.

Este ejemplo contiene los siguientes controles:

  1. Formulario (UserForm). No es precisamente un control.
  2. Un cuadro de lista (ListBox).
  3. Dos botones (CommandButton).

Cómo funciona

Nuestro formulario se llama UserForm1, el cual primero llamaremos con la siguiente instrucción:

Private Sub CommandButton1_Click()

'Botón Formulario de Hoja1
'
    UserForm1.Show
    '
End Sub

Al mostrarte el formulario veremos dos botones. Si presionamos el que dice Llenar lista, el ListBox se llenará con el nombre de las hojas del archivo activo, como se muestra en la Figura 1.

image

Figura 1. Alimentar Cuadro de lista.

El código utilizado para llenar la lista es el siguiente:

'Botón Llenar lista
Private Sub CommandButton1_Click()
'
'Recorremos los nombres de las hojas
    For Each Hoja In ActiveWorkbook.Sheets
        '
        Me.ListBox1.AddItem Hoja.Name
        '
    Next Hoja
    '
End Sub

Con el nombre de las hojas en el ListBox, ahora podemos proceder a elegir cualquier elemento de la lista y presionando el botón Hoja elegida, se nos mostrará un cuadro de mensaje con el nombre elegido. Como en la Figura 2.

image

Figura 2. Mostrar valor de Item seleccionado en ListBox.

El siguiente código hará que mostremos el valor elegido:

'Botón Hoja elegida
Private Sub CommandButton2_Click()
'
'Declaramos variables
Dim Cuenta As Integer
Dim Numero As Integer
Dim j As Integer
Dim i As Integer
    '
    Cuenta = Me.ListBox1.ListCount
    '
    'Validamos que haya un elemento seleccionado.
    For j = 0 To Cuenta - 1
        If Me.ListBox1.Selected(j) = True Then
            Numero = Numero + 1
        End If
    Next j
    '
    'La hoja seleccionada se pasará al ListBox de hojas visibles.
    For i = 0 To Cuenta - 1
        If Me.ListBox1.Selected(i) = True Then
            MsgBox Me.ListBox1.List(i), vbInformation, "EXCELeINFO"
        End If
    Next i
    '
End Sub

Anexos

Si deseas hacer tus propias pruebas en el siguiente link podrás descargar el ejemplo:

:: Descarga Mostrar valor seleccionado de un ListBox.rar

You may also like...