Añadir elementos a un combo box

09/08/2007 - 19:22 por Desastres | Informe spam
Buenas tardes.

¿Cómo puedo añadir elementos a un combo box los datos de una fila en las columnas 1, 7 y 12 de una
hoja de calculo teniendo en cuenta que quiero llamarles (teclear en el combo box) por la columna 7 ,
de forma tal que me "suba al combo box todos los elementos que contienen la cadena que voy
tecleando.
A teclear "M", "Ma", "Mad", "Madr", me presentaria tanto Madrid, como Madrigal o Madrugar o
Madreperla.
Al seleccionar un dato quisiera obtener como respuesta el código que esta en la columna 1 en lugar
de la descripción que se encontraba en la columna 7.
Los datos de la columna 12 solo son informativos.

Saludos
Des

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
11/08/2007 - 03:31 | Informe spam
hola, Des !

de los datos que expones en esta consulta, se puede desprender/intuir/adivinar/[casi] ver/...
cual es la idea para solucion del planteamiento [sin embargo, creo que]...
mas que *faltarle datos*... la faltan los *detalles finos* [rangos, hojas, de donde, a donde, como, por que, etc.]

por lo pronto, solo me atrevo a opinar sobre las -posibles- alterntivas aplicables a estas necesidades :-(

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

1) te sugiero que en vez de estar limpiando y rellenando un combobox MISMO desde el cual vas solicitando filtros parciales...
utilices un control de lista que se vaya actualizando segun los caracteres ingresados en un cuadro de texto

2) para obtener [segun caracteres-criterio en el cuadro de texto] una lista *filtrada* para el relleno del control de lista...
tienes disponibles varias alternativas [segun la complejidad de tu listado/base de datos/campos/registros/etc.] p.e.
- consulta a bases de datos [access/excel/csv/txt] mediante ADO/Recordset/..., Obtener datos externos/MSQuery/...
- autofiltros... filtros avanzados... hojas ocultas... rangos des/re/ordenados...
- listas con formulas condicionadas para extraer -como- filtros, nombres con referencia a rangos dinamicos, etc. etc. etc.

3) determinar cual mecanismo/medio/... es mejor [seguramente] dependera de algunas otras eventualidades [p.e.]
- si no es inconveniente mantener abierto el archivo de origen
[asumiendo listados en excel y/o si contiene muchas/demasiadas formulas que afecten los re/calculos]
- si puedes convertir tu base de datos a un archivo *simple* de texto, csv, tab, etc. [pudiera tener sus ventajas]
- si el numero de campos/columnas de tu listado/base de datos es... *dinamica/variable/...*
o seran siempre las mismas [sobre todo para el tema de *ir filtrando* lo que pongas en el cuadro de texto] -?-

algo de lo anterior [quizas combinado y/o adicionado con otras alterntivas]
podria darte la sensacion de actualizaciones/refrescos/... *en tiempo real* [o con un retraso bastante *aceptable*]

__ la consulta anterior __
Si referencio los datos a siete columnas seguidas de una base de datos, no hay problema para subir "el paquete" .
El problema es que quiero que sean columnas no consecutivas y, posiblemente
subir solo los datos que sean del proveedor que voy a tratar, ordenados alfabeticamente.

Podria abrir un libro nuevo, mandarlos a el en tres columnas seguidas, ordenarlos y retornarlos al combo
y entonces no necesitaria la consulta porque podria escoger lo que mandaba.
Pero me parece "in elegante", ademas de que no aprenderia nada nuevo.

Por otro lado, pretendo: Abrir el libro, subir los solo los datos necesarios hasta el formulario
y cerrar el libro para "aligerar" la memoria del sistema.
Cuando necesite volcar datos, lo abriria de nuevo en su momento, al final del proceso.

Lo necesito para aplicarlos a un procedimiento de adquisicion de mercaderías.
(Oferta, pedido, albaran, pro forma, factura, abono (poco a poco).

Supon que en una base de datos de articulos (60 columnas)
mi codigo esta en la 1ª columna, la descripcion esta en la 7ª y la referencia del proveedor en la 12 y el precio en la 10.
Si la base tiene 6000 lineas es casi imposible acordarse (aunque hay metodos para poder hacerlo)
de la relacion entre la referencia del proveedor y la nuestra.

Lo que quiero es teclear la descripcion en un combo box (a veces hay bastantes descripciones iguales)
y quiero que me suba "todas las lineas" que tengan la misma descripcion, porque mis codigos son distintos.
El codigo o precio del proveedor me ayudan a decidir cual de ellos es.

El resultado escogido lo pasare primero a un combo box (o un text box)
en el que ira mi codigo y luego a traves de el, buscare de nuevo todos los datos en la base ellos:
Nombre (en este caso ya lo sabemos), precio de tarifa, Caja estandar, stock, compra a#o ( unidades y valor)
compra acumulada (unidades y valor) se pueden poner mas datos informativos para la toma de decisiones como:
moneda de compra, ultimo contra valor, unidades objetivo para el a#o, Ultimo precio de coste, precio de coste medio, etc

Si te faltan mas datos,o no soy bastante claro, indicamelo, por favor.
Respuesta Responder a este mensaje
#7 Héctor Miguel
11/08/2007 - 03:48 | Informe spam
hola, Ivan !

aprovecho para intentar salir de dudas,=>
a mi, por lo que recuerdo, tampoco me resulta efectiva columheads con los combos de nultiples columnas (e.2002),
me carga los titulos pero no los inmoviliza
es asi, es cuestion de la version, o hay alguna propiedad incompatible con columnheads
[como creo que ocurre con multiselect en los listbox]?
en estos ultimos suele ser apa#able con unos labels, pero en los combos me temo que resulta un poquillo mas engorroso..



no se como hagas para asignarle las ColumnHeads a tu control -?-
pero cuando la estableces en True [hasta donde recuerdo y/o segun la ayuda en linea de vba]...

a) solo te servira si quieres que muestre como titulo la fila que esta arriba [Y FUERA] del 'rango asignado'
es decir, solo te sera de utilidad si asignas el origen del control a un objeto 'Range' [y su hoja respectiva]
[p.e.] si los titulos estan en el rango A1:C1... al control le pasas como origen a partir de la fila 2 [A2:C25 ?]

b) NO te servira... si rellenas el control 'item-por-item', o usando la propiedad '.Value' del rango 'de origen'

si cualquier duda... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#8 Desastres
11/08/2007 - 16:16 | Informe spam
Hola Héctor.
no se como hagas para asignarle las ColumnHeads a tu control -?-


Lo hago de memoria , pero creo que tan sencillo com igularla a True ( o false) segun desees.

a) solo te servira si quieres que muestre como titulo la fila que esta arriba [Y FUERA] del 'rango


asignado'
es decir, solo te sera de utilidad si asignas el origen del control a un objeto 'Range' [y su


hoja respectiva]
[p.e.] si los titulos estan en el rango A1:C1... al control le pasas como origen a partir de


la fila 2 [A2:C25 ?]

Esto lo hace automaticamente el sistema,

b) NO te servira... si rellenas el control 'item-por-item', o usando la propiedad '.Value' del


rango 'de origen'

Pués ésto es lo que yo espero poder saltarme, porque necesito "subir" los datos con un bucle y en
columnas no contiguas. y a pesar de que las columnas son aceptablemente distintas, un uno de código
de proveedor es bastante semejante a un uno de codigo de moneda.

Por otro lado, estoy mirando de ordenarlo ( si no, es un cognazo buscar [a ojo] un elemento entre
300 / 400 desordenados)

Saludos
Des
Respuesta Responder a este mensaje
#9 Ivan
11/08/2007 - 18:40 | Informe spam
hola de nuevo,

b) NO te servira... si rellenas el control 'item-por-item', o usando la propiedad '.Value' del rango 'de origen'





hola Hector, pues parece que esto resuelve mi duda [suelo llenar los
combos <no siempre, pero casi..> con algo asi +/- : combo.list rango.value ] .

al menos ahora se a que se debe.

muchas gracias de nuevo y un saludo
Ivan
Respuesta Responder a este mensaje
#10 Héctor Miguel
12/08/2007 - 01:34 | Informe spam
hola, Des !

... esto es lo que yo espero poder saltarme, porque necesito "subir" los datos con un bucle y en columnas no contiguas...



=> hay una propuesta [creo que no las has visto] en la primer *bifurcacion* de este hilo :))

comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida