Actualizar contenido de listbox sin cerrar el formulario.

05/01/2007 - 01:28 por ~ jose ~ | Informe spam
Hola que tal?
Tengo un formulario con un listbox y unos botones que insertan datos en
el rango que emplea el listbox.
Como puedo actualizar el contenido de un listbox cuando se está
ejecuntando el formulario?
Por ejemplo actualizar el listobx cuando pincho un botón del
formulario, que código me hace falta?

Gracias, un saludo,
jose

Preguntas similare

Leer las respuestas

#1 Ivan
05/01/2007 - 02:11 | Informe spam
hola Jose

creo que simplemente tendrias que borrar el listbox y volver a cargarlo
en el evento click del boton

pej:

suponiendo que el rango que llena el listbox (ListBox1) esta en la
columna 'a' (a partir de a1) y la ultima celda puede ser variable,
podrias usar alguna de estas formas ->

with listbox1
.clear
.list=range("a1:a" & range("65536").end(xlup).row).value
end with

o esta otra

dim celda as range
listbox1.clear
with activesheet
for each celda in .range("a1:a" & .[a65536].end(xlup).row)
listbox1.additem celda.value
next
end with

cualquiera de estos dos codigos podrias ponerlo en el evento click del
boton, una vez adaptado a tu situacion concreta en cuanto a rango,
hoja, etc

espero te ayude en algo

un saludo y hasta pronto
Ivan

PD: los codigos estan escritos en el editor del foro y pueden tener
alguna errata (creo que no, pero...), aunque supongo que seria facil de
corregir
Respuesta Responder a este mensaje
#2 ~ jose ~
05/01/2007 - 20:01 | Informe spam
Hola, qeu tal?
He probado tu código y me dá error, me dice:
Error 1004 bla bla bla y..
Error en el método 'Range' de objeto '_Global'

He puesto la linea:
ListBox1.List = Range("d11:d" & Range("65536").End(xlUp).Row).Value
en el evento initialize para cargar los datos y no me funciona, no los
carga y salta en error que menciono.

He puesto la linea:
ListBox1.RowSource = "D11:D65536" y si me muestra los datos (claro,
menudo montón de filas en blanco!!!)
pero al poner este código en el botón:

With ListBox1
.Clear
.List = Range("d11:d" & Range("65536").End(xlUp).Row).Value
End With

me devuelve error, se para en .Clear al ejecutarlo.

Justo antes de enviar este post me he fijado que faltaba la letra de la
columna en el rango así que he probado a poner "d65536" en vez de
"65536" y funciona!, no he borrado todo lo anterior porque ya que lo
tenia escrito, quizas a alguien le pueda interesar por si le sucede lo
mismo.

El otro código funciona perfectamente.

Gracias, vale?

Un saludo,
jose



Ivan ha escrito:

hola Jose

creo que simplemente tendrias que borrar el listbox y volver a cargarlo
en el evento click del boton

pej:

suponiendo que el rango que llena el listbox (ListBox1) esta en la
columna 'a' (a partir de a1) y la ultima celda puede ser variable,
podrias usar alguna de estas formas ->

with listbox1
.clear
.list=range("a1:a" & range("65536").end(xlup).row).value
end with

o esta otra

dim celda as range
listbox1.clear
with activesheet
for each celda in .range("a1:a" & .[a65536].end(xlup).row)
listbox1.additem celda.value
next
end with

cualquiera de estos dos codigos podrias ponerlo en el evento click del
boton, una vez adaptado a tu situacion concreta en cuanto a rango,
hoja, etc

espero te ayude en algo

un saludo y hasta pronto
Ivan

PD: los codigos estan escritos en el editor del foro y pueden tener
alguna errata (creo que no, pero...), aunque supongo que seria facil de
corregir
Respuesta Responder a este mensaje
#3 Ivan
05/01/2007 - 21:09 | Informe spam
hola Jose

tienes razon, me habia comido la 'a' ('d'), pero por suerte, y como te
comentaba, tenia facil solucion

de todas formas, quizas no te vendria mal incluir una instruccion
previa tipo ->

if [d11]<>"" then

...el codigo

end if

para evitar el cargado (y posibles errores) si no hay datos en la lista

por otro lado, en el primer codigo, quizas te interese hacer una
referencia explicita a la hoja, sino lo haces asume que es la activa
(en el 2º tambien, pero explicitamente), de ahi la sugerencia de
adaptarlo a tus caracteristicas (hoja, rango, etc)

un saludo
Ivan
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida