Ayuda con ListBox

Hola tengo el siguiente problema, necesito construir un formulario que contenga un ListBox, el lio es que yo le añado elementos al Listbox así: ListBox.AddItem "Lo que necesito" ahora bien, debo construirlo en un archivo en el que manejo de 2 a 15 empresas, el numero depende del usuario, entonces necesito que las empresas seleccionadas aparezcan en el listbox, la selecciono, doy click en unbotón, y me lleva a la información de dicha empresa, pero el problema es que las empresas pueden cambiar en cualquier momento, igual que su numero, así que si son 15 salgan 15, y si son 6, pues salen solo las 6 sin espacios en blanco, ni ceros, no se como hacerlo y agradecería tu ayuda
Mil gracias
Beohrtnoth

1 respuesta

Respuesta
1
Lo que no entiendo es el momento en el cual cambian las empresas; porque sino lo que puedes hacer es "limpiar" el listbox y volver a llenarlo.
Para limpiarlo podrías usar algo como
cuantos=ListBox.ListCount
i=1
Do While i <= cuantos
ListBox.RemoveItem 0
i = i+1
Loop
No estoy seguro que sea esto lo que quieres pero sigue aclarando la pregunta y vamos viendo.
Hola Gustavo, gracias por tu ayuda, el asunto es el siguiente, tengo una base de datos con más de 10,000 empresas y sus datos financieros, estas empresas están divididas en subsectores cada uno de aprox. 60 a 100 empresas, lo que hace mi archivo es que lista estas 100 empresas de un subsector previamente escogido y de esta lista selecciona 15 máximo,(puede escoger 1, 3, 8, etc), y puede cambiar esas empresas seleccionadas cuantas veces desee, lo que necesito es que en el UserForm me aparezca un listbox con las empresas seleccionadas y que cambien cada vez que cambie la selección.
Muchas gracias
Beohrtnoth
El cambio al que te referís (que querés te haga cambiar el Userform) lo haces en el UserForm mismo o lo haces en una hoja de calculo y querés que te cambie el Userform en función a la selección del Excel.
Si la opción es la última dentro del VBA; si seleccionas la hoja vas a encontrar el evento SelectionChange del objeto Worksheet (toma como parámetro el rango que está seleccionando); por lo que en este lugar podrías poner el código para que limpie el Listbox y lo vuelva a llenar con la selección.
Comenta cual es la situación y la vamos depurando.
Si lo que cambian son los datos; entonces podes ponerlo en el evento Change (en lugar de SelectionChange); esto te funciona si los cambios se realizan por introducir datos "en forma manual"; si el cambio se debe a un recalculo, lo tenés que poner en el evento Calculate
No deberías Cargar el UserForm (creo que ya lo tenés cargado); lo que si deberías es Limpiar el Listbox y volver a cargarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas