excel 2007 - control listbox

5
Control ListBox Control ListBox El control ListBox permite añadir elementos en forma de lista y también poder seleccionar elementos de la misma para trabajar los datos. Este control permite seleccionar un elemento solo o varios de ellos, utilizando la propiedad Multiselect. Para agregar elementos a un control ListBox en tiempo de diseño, se debe seleccionar el control Listbox, y desde la ventana de propiedades ubicarnos en la que se llama List. Al desplegarla podemos agregar y remover elementos. Para esto se debe ingresar uno, luego mantener la tecla Ctrl presionada y presionar Enter, y agregar el siguiente y asi con los demás. Para agregarlos en tiempo de ejecución, es decir mediante código, se utiliza un método llamado AddItem. Por ejemplo si quisiéramos agregar un elemento a un control llamado List1 en el evento Click de un botón, debemos escribir el nombre del ListBox y presionar el ".". Visual Basic desplegará la lista de propiedades y métodos del control List, en ella buscamos el método AddItem, como muestra la imagen: El método AddItem tiene 2 parámetros. AddItem "Elemento que vamos a agregar", "Index (posición)" El primer parámetro es obligatorio, y es el elemento que vamos a añadir al control List. El segundo parámetro no es obligatorio, es decir es opcional, y permite especificar el lugar donde añadir el elemento, es decir la posición. A este se le pasa un número entero, por ejemplo 0, 1, 5 etc...Si no se especifica una posición, el elemento que se agrega es añadido al final de la lista. Por ejemplo, si quisiera agregar 5 nombres de países en un control llamado List1, cuando presionamos un Command1 :

Upload: martin-ruggeri

Post on 24-Dec-2015

8 views

Category:

Documents


0 download

DESCRIPTION

Programación de ListBox Excel 2007

TRANSCRIPT

Page 1: Excel 2007 - Control ListBox

Control ListBox

Control ListBox

El control ListBox permite añadir elementos en forma de lista y también poder seleccionar elementos de la misma para trabajar los datos. Este control permite seleccionar un elemento solo o varios de ellos, utilizando la propiedad Multiselect.

Para agregar elementos a un control ListBox en tiempo de diseño, se debe seleccionar el control Listbox, y desde la ventana de propiedades ubicarnos en la que se llama List. Al desplegarla podemos agregar y remover elementos. Para esto se debe ingresar uno, luego mantener la tecla Ctrl presionada y presionar Enter, y agregar el siguiente y asi con los demás.

Para agregarlos en tiempo de ejecución, es decir mediante código, se utiliza un método llamado AddItem.

Por ejemplo si quisiéramos agregar un elemento a un control llamado List1 en el evento Click de un botón, debemos escribir el nombre del ListBox y presionar el ".". Visual Basic desplegará la lista de propiedades y métodos del control List, en ella buscamos el método AddItem, como muestra la imagen:

El método AddItem tiene 2 parámetros.

AddItem "Elemento que vamos a agregar", "Index (posición)"

El primer parámetro es obligatorio, y es el elemento que vamos a añadir al control List. El segundo parámetro no es obligatorio, es decir es opcional, y permite especificar el lugar donde añadir el elemento, es decir la posición. A este se le pasa un número entero, por ejemplo 0, 1, 5 etc...Si no se especifica una posición, el elemento que se agrega es añadido al final de la lista.

Por ejemplo, si quisiera agregar 5 nombres de países en un control llamado List1, cuando presionamos un Command1 :

Page 2: Excel 2007 - Control ListBox

Private Sub Command1_Click() List1.AddItem "Brasil" List1.AddItem "Francia" List1.AddItem "Italia" List1.AddItem "Argentina" List1.AddItem "venezuela" End Sub

Al probar lo anterior, Visual Basic no dió error al no indicar la posición o el parámetro Index, ya que como se dijo dicho parámetro es opcional.

Para eliminar un elemento se utiliza el método RemoveItem. Este método tiene un parámetro llamado Index en el cual debemos indicar la posición del elemento que vamos a eliminar. Por ejemplo:

Private Sub Command2_Click() List1.RemoveItem 2 End Sub

El ejemplo anterior eliminaría de la lista el elemento "Italia". Te preguntarás porque elimina a "Italia" si este está en la posición 3. En realidad está en la posición 2, ya que se comienza el conteo desde el 0, es decir en la lista del ejemplo anterior, "Brasil" tiene el número 0, "Francia" el 1, "Italia" el 2 etc...

Importante: Al eliminar un elemento de la lista, el número relacionado al elemento o Item a eliminar, debe estar en la lista, ya que si no daría un error al querer eliminar un Item que no se encuentra.

Ejemplo simple para agregar y eliminar elementos de un control List

Para el siguiente ejemplo colocar los siguientes controles en un formulario como está en la imagen:

Un control Label1 y en el Caption escribir "Nombre". Un Command1 y en el Caption "Añadir". Al Command2 "Eliminar Seleccionado". Luego agrega un Text1 al lado del control Label1 y un control List1. El elemento que escribamos en el Text1, cuando se presione " Añadir " se agregará al control List1, cuando presionemos el Command2 se eliminará de la lista el elemento que se encuentre seleccionado.

'Eliminamos el elemento 2 de la lista

Page 3: Excel 2007 - Control ListBox

Colocar el código en el formulario:

Private Sub Command1_Click() If Text1 = "" Then MsgBox "Debe ingresar un nombre para poder agregar un elemento", vbQuestion + vbOKOnly, "Datos incompletos" Exit Sub End If List1.AddItem Text1 End Sub Private Sub Command2_Click() If List1.ListIndex <> -1 Then List1.RemoveItem List1.ListIndex End If End Sub

En el ejemplo anterior cuando se presiona añadir, antes de utilizar el método AddItem para añadir el contenido del Text1, se comprueba mediante un IF que el Text1 no está vacío. Si está vacío se muestra un mensaje de error y se sale de la rutina mediante Exit sub. Si se ha ingresado algún texto, ignora la cláusula IF Then y ejecuta la línea que añade el Item.

En el botón de Eliminar el elemento seleccionado se utilizan una propiedad que no se comentó llamada ListIndex. Esta propiedad nos devuelve el número del elemento que se encuentra seleccionado actualmente. Cuando el ListBox no tiene ningún elemento seleccionado, el valor de ListIndex es de -1. Para que no de error al querer eliminar un elemento que no se encuentre seleccionado, primero debemos comprobar que el valor de ListIndex es distinto a -1, por ejemplo

If List1.ListIdex <> -1 Then ....

Si el valor es distinto a -1 quiere decir que hay un elemento seleccionado, entonces se procede a la eliminación del mismo, utilizando el método RemoveItem pasándole como parámetro el número de ListIndex.

Propiedad Sorted:

Si quisiéramos ordenar el contenido, es decir los elementos del control List en forma alfabética, debemos utilizar la propiedad Sorted.

Esta propiedad no se puede utilizar en tiempo de ejecución, si no que la debemos establecer en tiempo de diseño desde la ventana de propiedades. Si la propiedad está en True, la lista de elementos se mostrará en forma ordenada, si está en False sin ordenar. Por defecto esta propiedad está con el Valor False.

Eliminar elementos con el método Clear

Para eliminar todo el contenido de un control ListBox se utiliza el método o función llamado Clear.

Por ejemplo:

'Si la lista no está vacía entonces podemos eliminar

'Eliminamos el elemento que se encuentra seleccionado

Page 4: Excel 2007 - Control ListBox

Private Sub Command1_Click() List1.Clear End Sub

Este método no necesita ningún parámetro, solo ejecutarlo para que todo el contenido del control sea eliminado. Tampoco produce un error si ejecutamos Clear y el ListBox no tiene elementos, es decir si los tiene los elimina, si no tiene elementos y se ejecuta Clear, no ocurre nada.

Propiedad ListCount

La propiedad ListCount devuelve la cantidad de elementos que contiene el control.

Por ejemplo, en las siguientes líneas, cuando se presiona un Command1, se agregan 3 elementos. Luego se muestra un mensaje, mediante un MsgBox, con la cantidad de elementos del control, consultando el valor de la propiedad ListCount :

Private Sub Command1_Click() List1.AddItem "Enero" List1.AddItem "Febrero" List1.AddItem "Marzo" MsgBox List1.ListCount End Sub

Propiedad List

La propiedad List devuelve o establece los elementos contenidos en la lista del control. Esta propiedad lleva un parámetro que indica el número del elemento que se quiere consultar. Un ejemplo: si quisiera mostrar en un Label1 el texto del elemento que se selecciona, haríamos lo siguiente:

Colocar un List1 y un Label1. Pegar esto en el formulario:

Private Sub Form_Load() List1.AddItem "Enero" List1.AddItem "Febrero" List1.AddItem "Marzo" End Sub Private Sub List1_Click() Label1 = List1.List(List1.ListIndex) End Sub

'Elimina todo el contenido del ListBox

'Agregamos 3 elementos al listado

'Mostramos medianete un mensaje la cantidad de elementos 'del contenido del ListBox, en este caso devuelve 3

'Agregamos 3 elementos al listado

'Cuando hacemos Click en un elemento del List1 mostramos en el Label1 el texto del elemento

Page 5: Excel 2007 - Control ListBox

En el código anterior, cuando carga el formulario en el evento Load, se agregan 3 elementos cualquiera. El restante código se encuentra en el evento Click del control List, por eso se ejecutará cada vez que hagamos un Click en el mismo, y utilizando la propiedad List y pasándole otra propiedad ya vista " ListIndex ", obtenemos el texto del elemento actualmente seleccionado.

Si pasáramos un número, nos mostraría el texto del elemento que corresponde a ese número dentro del ListBox. Siguiendo el ejemplo anterior en el que teníamos 3 elementos, si se hiciera esto

Private Sub List1_Click() Label1 = List1.List(2) End Sub

...el control Label1 mostraría el texto del elemento 2, que sería "Marzo". Esto como ya se indicó antes es porque el primer elemento en la lista es el 0, que en este caso corresponde a "Enero", el segundo elemento es el 1, en este caso "Febrero" , etc...

Otras propiedades del control ListBox son:

• Propiedad Backcolor : Establece el color de fondo del control • Propiedad Enabled : Permite habilitar o deshabilitar el control ListBox -

Valores True y False • Propiedad Font : Establece el tipo de fuente, tamaño estilo etc... de los

elementos • Propiedad ForeColor : Establece el color de la fuente de los elementos • Propiedad Height y Width : Establece el ancho y alto del control • Propiedad MultiSelect : Permite indicar si el ListBox se podrá seleccionar

mas de un elemento • Propiedad Visible : Si está en True el control será visible si está en False

estará oculto