Pregunta para luismondelo

Lo que quiero hacer es rellenar las celdas de una columna A con los valores que seleccione de un combobox que a su vez toma los valores de un rango dinámico de la columna A pero necesitaría que los valores aparecieran sin repetidos, ni celdas vacías y ordenados alfabéticamente todo sin usar previamente una lista donde realizar estos pasos sino usando vba para que el combobox tuviera directamente esas características.

La columna A empezaría en "A2" y cada celda a partir de ésa la querría rellenar con el combobox. El problema que veo también es que cuando bajo a lo largo de la columna ya no veo el combo, no sé si eso se podría resolver mostrando el combo en la celda contigua a la celda activa que tengo que rellenar, vamos algo parecido en formato a lo que sería una lista desplegable.

Muchas gracias por la ayuda y espero que puedas solucionarme este quebradero de cabeza porque busco y busco y no doy con el código que me solucione esto.

1 respuesta

Respuesta
2

¿Te refieres a que quieres llenar el combobox con los valores de la columna A sin repetidos?

¿Dónde tienes el combobox en la hoja o en un formulario?

Si, querría llenar el combobox con los valores de la columna A,sin repetidos, ni celdas vacías que pudieran aparecer en la columna A y además los valores del combobox preferiría que aparecieran ordenados todo esto haciéndolo con vba directamente sobre el combobox sin usar para hacer esto una lista previa en la que basarse el combo.

El combobox lo tengo en una hoja.

A su vez una vez conseguido el combobox, éste mismo serviría para rellenar las celdas de la columna A y aquí se me plantea el segundo problema. Necesitaría que el combo se visualizara en la celda de al lado de la celda activa en ese momento por un tema de comodidad es decir si estoy en A2 se visualice el combo en B2 seleccione un valor del desplegable y me lo inserte en A2 y si estoy en A3 Se visualice el combo en B3 Seleccione un valor del desplegable y me lo inserte en A3¿Sería también eso posible implementarlo en el código?

De verdad que lo he intentado pero no sinceramente no sé hacerlo ojalá me puedas ayudar

Gracias por tu ayuda y tu tiempo..

Si utilizamos un combobox dentro de la hoja debemos usar su propiedad LISTFILLRANGE y para ello en rango de datos del combobox debe estar visible, es decir, necesito un rango auxiliar para el llenado del combobox, debido a tus exigencias.

Tu dirás.

Perdona, soy un poco novato en vba y claro pensaba que el listfillrange podía ser un rango dinámico de la columna A como =Desref('hoja1'!$A$1;1;;;Contara('hoja1'!$A:$A)). Al rango le insertaría un nombre y ese nombre lo incluiría en propiedades > listfillrange del combobox. Así los valores cargados en el combo serían los de la columna A. Después claro tendría el problema que me aparecerían valores repetidos, celdas vacías, valores sin ordenar y esto es lo que habría que solucionar si se pudiera directamente con vba en el combobox.

Ante todo muchas gracias por ayudarme.

Lo que mencionas se puede hacer perfectamente pero mi problema es que lo quieres ordenador alfabéticamente y para eso necesito una columna auxiliar que siempre se quedaría visible.

Ya te entiendo, es que creía que con vba se podría evitar el paso de la columna auxiliar pero como no es posible pues si puedes indicarme como se haría usando la columna auxiliar.

Si es posible además de ordenarlos alfabéticamente se podría evitar los repetidos y las celdas vacías que hubiera en la columna A de donde toma los valores. Te lo agradecería en el alma.

En el siguiente enlace te dejo un archivo con el caso construido

http://share.cx.com/X358qg

No olvides finalizar la consulta

Es fantástica tu solución justo lo que necesitaba y resuelve totalmente mis problemas.

La verdad es que no sé cómo agradecértelo. Expertos como tú hacéis una labor increíble usando vuestro tiempo para ayudarnos a comprender y solucionar casos imposibles para nosotros.

MUCHÍSIMAS, MUCHÍSIMAS GRACIAS

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas