Ejemplo 11
El siguiente ejemplo permite listar una columna de datos de una hoja del Excel, seleccionar un elemento y colocarlo en un cuadro de lista.
Procedimiento:
Para ello utilizaremos un cuadro combinado para colocar los elementos de la columna de la hoja, un botón de comando para que realice esta transferencia, un cuadro de lista para recibir el elemento seleccionado y un botón de comando para dar por finalizado el formulario. Los datos se encuentran en el libro Formu01.xlsm.
Los botones de control a ser usados se muestra en la siguiente tabla:
| Control | Nombre, caption |
| Comando | CmdListar, Extrae |
| Comando | CmdFin, Terminar |
| Cuadro de Lista | LstReporte |
| Cuadro combinado | CboLista |
La imagen siguiente muestra este formulario:

El botón de comando <Terminar> sólo contiene la instrucción End
El botón de comando <Extrae> permite ingresar por teclado el número de fila y columna donde se encuentran los datos y luego clocarlos en el cuadro combinado CboLista.
Esto se realiza con el siguiente procedimiento:
Private Sub CmdListar_Click()
Sheets("Tablas").Select
Ir = Val(InputBox("Ingrese la primera fila de la lista"))
Icol = Val(InputBox("Ingrese la columna de la lista"))
Cadena = Trim(Cells(Ir, Icol))
While Len(Cadena) > 0
CboLista.AddItem Cadena
Ir = Ir + 1
Cadena = Trim(Cells(Ir, Icol))
Wend
End Sub
Luego de haberse extraído los datos de la hoja, al hacer clic en un elemento de esta lista, el control de lista recibe dicho elemento. Esto se realiza con el siguiente procedimiento:
Observe que los últimos dos procedimientos están por gusto.
Private Sub CboLista_Change()
LstReporte.AddItem CboLista.List(CboLista.ListIndex)
End Sub
A continuación se muestra todos los procedimientos:
Private Sub CboLista_Change()
LstReporte.AddItem CboLista.List(CboLista.ListIndex)
End Sub
Private Sub CmdFin_Click()
End
End Sub
Private Sub CmdListar_Click()
Sheets("Tablas").Select
Ir = Val(InputBox("Ingrese la primera fila de la lista"))
Icol = Val(InputBox("Ingrese la columna de la lista"))
Cadena = Trim(Cells(Ir, Icol))
While Len(Cadena) > 0
CboLista.AddItem Cadena
Ir = Ir + 1
Cadena = Trim(Cells(Ir, Icol))
Wend
End Sub
Private Sub LstReporte_Click()
End Sub
Private Sub UserForm_Click()
End Sub
Nota:
Si la lista fuera más grande se puede modificar la propiedad ListRows del cuadro combinado a fin de que se pueda visualizar más elementos de la lista.
Síguenos en: Facebook Sobre aulaClic Política de Cookies