Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Crear lista desplegable con dos columnas en celda

4,721 views
Skip to first unread message

Pregunton

unread,
Sep 23, 2009, 12:18:02 PM9/23/09
to
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

unread,
Sep 23, 2009, 4:30:01 PM9/23/09
to
hola, Oswaldo !

> ... es posible crear un cuadro de lista por celdad y que me muestre dos columnas como en access lo hace por campo...

seria conveniente si comentas (exactamente) los "como" haces en access para...
"crear" por celdas (o campos o similares) un cuadro de lista que muestre dos columnas (?)
y comenta que muestran esas dos columnas y de donde se obtienen los datos (?)

saludos,
hector.


Pregunton

unread,
Sep 23, 2009, 4:59:02 PM9/23/09
to
Hola Héctor Miguel:

Esto hace tambien parte de la otra pregunta que me esta ayudando, tengo una
lista dentro del mismo libro, donde hay dos columnas una que muestra "codigo"
y la otra "Descripción", la idea es que me muestre las dos columnas al
desplegar la lista y me deje seleccionar una fila pero que tome como valor
principal el de la columna uno, la otra columna solo es informativa.

En access al crear una tabla o un formulario, le permite a uno cambiar el
tipo de seleccion uno es por lista desplegable, y le permite ver las columnas
que uno quiera, esto lo hace automaticamente y uno no ve el codigo.

Nuevamente gracias por atención y la ayuda que me pueda brindar.

Pregunton

unread,
Sep 23, 2009, 5:01:02 PM9/23/09
to
Hola Héctor Miguel:

Esto hace tambien parte de la otra pregunta que me esta ayudando, tengo una
lista dentro del mismo libro, donde hay dos columnas una que muestra "codigo"
y la otra "Descripción", la idea es que me muestre las dos columnas al
desplegar la lista y me deje seleccionar una fila pero que tome como valor
principal el de la columna uno, la otra columna solo es informativa.

En access al crear una tabla o un formulario, le permite a uno cambiar el
tipo de seleccion uno es por lista desplegable, y le permite ver las columnas
que uno quiera, esto lo hace automaticamente y uno no ve el codigo.

Nuevamente gracias por atención y la ayuda que me pueda brindar.

H�ctor Miguel

unread,
Sep 23, 2009, 11:53:03 PM9/23/09
to
hola, Oswaldo !

> ... tengo una lista dentro del mismo libro, donde hay dos columnas una que muestra "codigo" y la otra "Descripcion"


> la idea es que me muestre las dos columnas al desplegar la lista y me deje seleccionar una fila
> pero que tome como valor principal el de la columna uno, la otra columna solo es informativa.

(en excel) puedes incrustar un control de lista (combobox o listbox) y por codigo decidir "que" muestra y "cual pone"
solo tienes que indicarle a traves de una macro "de donde"... y "en donde" (y de preferencia, +/- exactamente)

> En access al crear una tabla o un formulario, le permite a uno cambiar el tipo de seleccion
> uno es por lista desplegable, y le permite ver las columnas que uno quiera

> esto lo hace automaticamente y uno no ve el codigo...

imagino que en access (aun sin ver el codigo) tambien requieres indicar cuales columnas son las que "quieres" ver (?)

recuerda que todo detalle que NO comentes... de este lado (del mensaje) no es seguro que podra "verse" igual ;)

saludos,
hector.


Pregunton

unread,
Sep 24, 2009, 5:08:01 PM9/24/09
to
Hola Héctor Miguel:

Primero gracias por dedicarle tiempo a mi solicitud, aclaro que no puedo
insertar un control de lista, por que la idea es que se muestre en la lista
desplegable de la celda, que cree por validacion de datos pense que habia una
forma de que por esa misma opción me deja ver la lista pero con dos columnas
y dejara tambien ver el titulo de la columna.

Gracias nuevamente por su colaboración.

AnSanVal

unread,
Sep 24, 2009, 7:02:57 PM9/24/09
to

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.

*****************************

"Pregunton" <Preg...@discussions.microsoft.com> escribi� en el mensaje
news:E5179FCD-3BF4-4687...@microsoft.com...
> Hola H�ctor Miguel:


>
> Primero gracias por dedicarle tiempo a mi solicitud, aclaro que no puedo
> insertar un control de lista, por que la idea es que se muestre en la lista
> desplegable de la celda, que cree por validacion de datos pense que habia una

> forma de que por esa misma opci�n me deja ver la lista pero con dos columnas


> y dejara tambien ver el titulo de la columna.
>

> Gracias nuevamente por su colaboraci�n.

AnSanVal

unread,
Sep 24, 2009, 7:11:09 PM9/24/09
to

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" <Preg...@discussions.microsoft.com> escribi� en el mensaje
news:E5179FCD-3BF4-4687...@microsoft.com...

> Hola H�ctor Miguel:


>
> Primero gracias por dedicarle tiempo a mi solicitud, aclaro que no puedo
> insertar un control de lista, por que la idea es que se muestre en la lista
> desplegable de la celda, que cree por validacion de datos pense que habia una

> forma de que por esa misma opci�n me deja ver la lista pero con dos columnas


> y dejara tambien ver el titulo de la columna.
>

> Gracias nuevamente por su colaboraci�n.

Pregunton

unread,
Sep 25, 2009, 2:59:01 PM9/25/09
to
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

unread,
Sep 25, 2009, 4:59:00 PM9/25/09
to
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


> "... me quede con 1545 sin el �pesazo " - mu�eca". Es posible?..."

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


Saludos: Antonio.
*******************************

"Pregunton" <Preg...@discussions.microsoft.com> escribi� en el mensaje

news:49B848C3-8648-4D8A...@microsoft.com...


> 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.

crx73

unread,
Sep 26, 2009, 12:42:23 PM9/26/09
to
On 25 sep, 14:59, "AnSanVal" <ansan...@teleline.es> wrote:
> 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
>
> > "... me quede con 1545 sin el ´pesazo "   -   muñeca". Es posible?..."
>
> Eso es justamente lo que hace el código VBA (pero el que publiqué controla solamente B2).
>
> Saludos: Antonio.
> *******************************
>
> "Pregunton" <Pregun...@discussions.microsoft.com> escribió en el mensajenews:49B848C3-8648-4D8A...@microsoft.com...

>
>
>
> > 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!- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

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

Gracias por tan valiosas aportaciones!!

gva...@gmail.com

unread,
May 24, 2020, 8:19:54 PM5/24/20
to
Hola
Antonio

Esta bueno el código, pero solo funciona con las celdas que contendrían el guión de concatenar, para devolver solo el código de la izquierda; hasta ese punto funciona excelente.

El problema son las celdas que no contienen ese argumento de guion, lo que sucede es que se borra o se elimina el texto o numero o código de cualquier celda o de otra lista desplegable.

Como hacer que funcione el código para que trabaje por ejemplo en la columna 1 con:
- Celda con Lista desplegable que incluya ese guion de concatener
- Celda con Lista desplegable con cualquier numero o texto que no contenga el guion.
- Celda con cualquier numero o letra.

Como se puede hacer el programa, he logrado algo como esto, pero no funciona bien, me podrías ayudar:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim m
Dim n%
If Target.Column = 1 Then
m = Target.Value
application.EnableEvents = True
ElseIf Target.Column = 1 Then
n = InStr(1, Target.Value, " - ")
Application.EnableEvents = False
Target.Value = Left(Target.Value, n)
Application.EnableEvents = True
End If
End Sub

Saludos
Guillermo






0 new messages