como crear una lista, que apunte a una tabla

28/06/2005 - 02:42 por William Javier | Informe spam
Como puedo crear una lista desplegable, que al desplegarla me muestre el
valor de la tabla, y su descricpion, pero al seleccionar el valor, solo
coloque el codigo.

Por ejemplo, la una lista desplegable, apunta a una tabla llamada tipo de
inventario...

Codigo Descripcion
RP Repuestos
MP Materia Prima
PT Producto Terminado.

Entoces, al desplegar la listadebe aparecer el codigo + descripcion;
pero al seleccionar el regsitro, solo se deberia llevar el valor de la tabla?
Como puedo hacer esto
 

Leer las respuestas

#1 Héctor Miguel
28/06/2005 - 06:24 | Informe spam
hola, William !

... crear una lista desplegable, que... muestre el valor... y su descricpion, pero al seleccionar... solo coloque el codigo.
Por ejemplo, la una lista desplegable, apunta a una tabla llamada tipo de inventario...
Codigo Descripcion
RP Repuestos
MP Materia Prima
PT Producto Terminado.
... al desplegar... debe aparecer el codigo + descripcion; pero al seleccionar el regsitro, solo se deberia llevar el valor



si suponemos que te refieres a las reglas de validacion por lista, con las cuales quisieras que...
-> se muestre mas de un campo/columna [que se 'tomarian' de un rango especifico] y que al seleccionar...
-> se deposite [en la celda validada] SOLO el dato correspondiente al primer campo/columna...
[me temo que] no va a ser 'asi de simple' como [supongo que] lo estas pensando, puesto que...
las reglas de validacion NO 'aceptan' rangos multiples [ni 'multi-dimensionales'] como 'origen' para una lista :-(

si no te 'incomoda' [el 'tener que'] usar otro tipo de objetos [combos] y un ligero apoyo con macros...
te paso un ejemplo al final con los supuestos y consideraciones que he podido imaginarme :))

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
=1) la tabla en el rango [A1:B4] -> fila 1 son titulos y la 'verdadera' BD en el rango 'B2:B4']
2) las celdas donde hubieras asignado las reglas de validacion en el rango 'D5:D10'
3) inserta en la hoja un combo [o lista desplegable] de la barra de herramientas 'cuadro de controles'
[ajustas sus dimensiones y otras propiedades y la 'mantienes' en un lugar -siempre- visible de la hoja]
4) copia las siguientes lineas... => en el modulo de codigo de 'esa' hoja <Private Sub Worksheet_Activate()
ComboBox1.List = Evaluate("a2:a4&"" - ""&b2:b4")
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Tmp = Evaluate("Match(" & ActiveCell.Address & ",a2:a4,0)")
ComboBox1.ListIndex = IIf(IsError(Tmp), 0, Tmp) - 1
End Sub
Private Sub ComboBox1_Change()
If Intersect(ActiveCell, [d5:d10]) Is Nothing Then SendKeys "{esc}": Exit Sub
ActiveCell = Application.Index([a2:a4], ComboBox1.ListIndex + 1): SendKeys "{esc}"
End Sub

con los ajustes anteriores la celda activa [dentro del rango 'D5:D10'] 'tomara' la seleccion 'apropiada' del combo
[obviamente podrias hacer que el combo fuera 'acompañando' a la celda activa, pero el codigo final no seria 'tan ligero'] :-(

Preguntas similares