¿cómo rellenar un combobox con un rango 'dinámico'?

04/08/2003 - 19:11 por cesar | Informe spam
Hola , grupo ;)

quiero rellenar mediante VBA un combobox (de la barra de herramientas
controles) con los datos de dos columnas. La cantidad de datos de
estas dos columnas es variable, no sirve:

Worksheets("Hoja1").ComboBox1.ListFillRange = "Hoja2!C2:D56"

la primera celda del rango siempre será C2, pero la última será D(n),
donde n es cualquier número. La hoja 2 no tiene 'huecos', es decir,
celdas vacías intermedias: desde A1 hasta K(n) todas las celdas
contienen datos.

¿cómo podría seleccionar el rango que necesito?
 

Leer las respuestas

#1 Adolfo Fernández
05/08/2003 - 19:04 | Informe spam
Hola Cesar,
Supongo que tu necesidad de rellenar el combobox desde VBA es debido a que
el rango tendrá n filas no? Si no es asi, no sigas leyendo.
Si el motivo es ese, te propongo que definas el rango como lo harias
normalmente desde Insertar - Nombre - Definir, y en vez de poner
Hoja2!C2:D56 utilices la función desref.
Mas o menos quedaría de la siguiente forma

ÞSREF(Hoja1!$C$2;;;CONTARA(Hoja1!$C:$C);2)

El único inconveniente es que en la columna C no puede haber mas valores que
los del rango, y en caso contrario se los tendrías que restar
CONTARA(Hoja1!$C:$C)-X

Yo utilizo muchisimo esta función porque al igual que tu casi siempre
trabajo con rangos dinamicos y no veas la pila tiempo y problemas que me
soluciona. Ademas, así te evitas tener que ejecutar la macro siempre que
quieras actualizar los valores.

Un saludo,
Adolfo

"César" escribió en el mensaje
news:
Mostrar la cita
parece
Mostrar la cita

Preguntas similares