Excel - Crear lista desplegable con dos columnas en celda

Asked By Pregunton on 23-Sep-09 12:18 PM
Buenos D??as a los integrantes de esta mesa de ayuda:

De antemano agradezco su colaborcion y la ayuda que me puedan brindar.

Tengo una peque??a inquietud, si es posible crear un cuadro de lista por
celdad y que me muestre dos columnas como en access lo hace por campo.

Atentamente;

OSWALDO GAITAN ARAQUE
Bendiciones!




Héctor Miguel replied on 23-Sep-09 04:30 PM
hola, Oswaldo !


seria conveniente si comentas (exactamente) los "como" haces en access para...
y comenta que muestran esas dos columnas y de donde se obtienen los datos (?)

saludos,
hector.
AnSanVal replied on 24-Sep-09 07:02 PM
Con un pequeño truco, podrias en una columna auxiliar concatenar dos columnas y que la validación haga referencia a la
columna concatenada.




Ejemplo:

[K2:K14]    lista columna 1

[L2:L14]     lista columna 2

[J2]      =K2&"   -   "&L2           ("   -   "   es igual a 3 espacios + guión + 3 espacios)

Copia/Pega J2 hasta J14

[J2:J14]      nombre definido:   "miLista"

[B2]:    Validación > Lista > =miLista




Código en el módulo de la hoja:




Private Sub Worksheet_Change(ByVal Target As Range)

Dim n%

If Target.Address = "$B$2" Then

n = InStr(1, Target.Value, "   -   ")

Application.EnableEvents = False

Target.Value = Left(Target.Value, n)

Application.EnableEvents = True

End If

End Sub





Saludos: Antonio.

*****************************
AnSanVal replied on 24-Sep-09 07:11 PM
Cometí un pequeño desliz en mi código.




Donde  está ...

n = InStr(1, Target.Value, "   -   ")

... debes cambiar por...

n = InStr(1, Target.Value, "   -   ") - 1





Saludos: Antonio.

*****************************
Pregunton replied on 25-Sep-09 02:59 PM
Hola Antonio:

Gracias por su ayuda, ya puse en practica su codigo pero tengo una pregunta
solo lo deja fijo para "b2", la idea es que me muestre las dos columnas, pero
que me tome solo el valor de la primera columna en la celda donde puse la
validaci??n por lista Excel2007/Datos/Validaci??n de Datos/LISTA/MILISTA

1) Ser?? que con el codigo lo puedo hacer solo para las celdas que tengan
activado la validaci??n por lista (que ya cree).

2)y que me tome despues de escojer el valor en la lista solo la primera
parte ejemplo en la lista aparece "1545   -   mu??ena", que al escojer la
celda me quede con 1545 sin el ??pesazo "   -   mu??eca". Es posible?

Gracias nuevamente por su colaboraci??n.

Atentamente;

OSWALDO GAITAN ARAQUE
Bendiciones!
AnSanVal replied on 25-Sep-09 04:59 PM
El ejemplo que puse es un ejemplo muy sencillo, pensado para controlar unicamente la celda B2.

Si quieres validar más celdas no tienes problema, basta con emplear el mismo sistema que explique en mi ejemplo, para
cada una de las celdas que quieres validar.

Donde SI tendrás que adaptar (a tu caso real) es en el código que tendrás que adaptar a tu rango real de celdas validas.

Si p.e. quieres que el código controle toda la columna B, cambia la linea...
If Target.Address = "$B$2" Then
... por esta otra...
If Target.Column = 2 Then



Eso es justamente lo que hace el código VBA (pero el que publiqué controla solamente B2).


Saludos: Antonio.
*******************************
crx73 replied on 26-Oct-09 12:43 PM
icamente la celda B2.
mismo sistema que explique en mi ejemplo, para
dr=E1s que adaptar a tu rango real de celdas validas.
ea...
le?..."
trola solamente B2).
unta
, pero
la
STA
gan
ojer la
ble?

Lo he probado y funciona perfectamente, hace un tiempo estuve
intentando hacer algo parecido y no pude, jeje. As=ED que recurr=ED a los
formularios, quiz=E1 algo un poco m=E1s complejo pero vino a resolver mi
problema en dicho momento.

Gracias por tan valiosas aportaciones!!